- Published on
Ubah Teks Dengan Perintah Sed
Cara mencari dan mengubah teks di dalam sebuah file menggunakan baris perintah (command line) pada Ubuntu.
Kita dapat menggunakan utilitas (utility) bernama sed.
Sed sendiri merupakan sebuah aliran editor yang dapat digunakan untuk membaca atau mengedit satu atau lebih sebuah file.
Kita dapat menggunakan perintah seperti berikut untuk menemukan dan mengganti teks pada Ubuntu.
Dalam kasus ini kita mencoba mengubah kata teks_lama
menjadi teks_baru
pada file filename.txt:
sed -i 's/teks_lama/teks_baru/g' filename.txt
sed merupakan perintah dari utilitas itu sendiri,
opsi -i
(yang mempunyai arti in-place) memberi tahu sed untuk menulis perubahan ke file asli.
Ekspresi subtitusi (yang ada dalam tanda petik) memiliki arti sebagai berikut:
- s : Awal dari ekspresi subtitusi
- teks_lama : Mewakili kata atau substring yang akan diganti (bisa juga berupa regular expression / RegExr).
- teks_baru : Merupakan kata atau substring pengganti teks lama.
- g : Mewakili global, yaitu mengganti semua kata yang mengandung kata yang ingin diganti.
- i : Mewakili ignoreCase, seperti pencarian dan penggantian case-insensitive. Ekspresi i diletakkan setelah ekspresi g (global).
Sebagai contoh, anggap saja direktori kerja kita saat ini adalah /var/www/ dan kita memiliki file bernama "sample.txt" di dalamnya, yang hanya berisi sebuah teks "Halo Kita".
Sekarang jika kita ingin mengganti setiap kemunculan kata "Halo" dengan kata "Hai" di file "sample.txt", kita cukup menggunakan perintah sed berikut:
sed -i 's/Halo/Hai/gi' sample.txt
Atau, kita juga bisa menggunakan cara absolut (lengkap), dengan perintah berikut:
sed -i 's/Halo/Hai/gi' /var/www/sample.txt