Perintah sed di Linux

Hai semuanya, apa kabar? Kali ini saya mau nulis tentang Linux lagi nih. Yaitu perintah sed yang bisa kita gunakan untuk manipulasi teks pada shell atau dokumen/file. sed sendiri artinya adalah Stream Editor.

Beberapa fungsi dari perintah sed ini adalah untuk mengganti kata (replace), menghapus kata atau baris, dan menyisipkan kata/teks.

Untuk tulisan kali ini kita bahas Replace dulu ya.

Sintaks yang bisa digunakan untuk mengganti teks adalah sed ‘s/lama/baru/g’ [namafile]

  • s sebagai tanda operasi replace
  • lama adalah kata yang ingin diganti, baru adalah penggantinya
  • g artinya global. Artinya, kalau tidak pakai tag ini, maka replace akan berlaku/terjadi hanya pada kemunculan kata pada baris yang sama

Untuk pengujian kali ini, kita coba buat file teks contoh yang isinya seperti ini:

$ cat test-sed.txt
apel merah,mangga hijau,jeruk oranye,belimbing kuning,melon hijau
daun hijau,ranting cokelat,rumput hijau,air bening,langit biru

Kita coba gunakan sintaks diatas. Kita akan coba ganti kata “hijau” dengan “ijo”.

Kita coba terlebih dahulu tanpa menggunakan tag 'g':

$ sed 's/hijau/ijo/' test-sed.txt
apel merah,mangga ijo,jeruk oranye,belimbing kuning,melon hijau
daun ijo,ranting cokelat,rumput hijau,air bening,langit biru

Bisa kita lihat kalau kata yang berhasil diganti adalah kemunculan kata hijau pertama pada tiap baris. Sedangkan kata hijau selanjutnya (pada baris yang sama) tidak diganti.

Oiya, perintah sed yang barusan kita lakukan ini tidak mengganti isi filenya ya. Saat kita cat hasilnya sama dengan hasil sebelumnya:

$ cat test-sed.txt
apel merah,mangga hijau,jeruk oranye,belimbing kuning,melon hijau
daun hijau,ranting cokelat,rumput hijau,air bening,langit biru

Sekarang, kita coba gunakan tag g’:

$ sed 's/hijau/ijo/g' test-sed.txt
apel merah,mangga ijo,jeruk oranye,belimbing kuning,melon ijo
daun ijo,ranting cokelat,rumput ijo,air bening,langit biru

Saat menggunakan tag g’, semua kemunculan kata ‘hijau’ berhasil diganti dengan kata ‘ijo’.

Seperti yang sudah kita pelajari sebelumnya, perintah sed ini tidak mengganti isi file. Apabila kita ingin mengganti isi filenya, kita bisa gunakan redirection dengan sintaks > [namafile].

File untuk outputnya kita gunakan file yang lain ya. Karena apabila kita gunakan file yang sama untuk menyimpan outputnya, maka hasil atau isi filenya akan jadi kosong.

Sekarang, kita coba jalankan kembali perintah sed dan hasilnya kita simpan pada file baru dengan nama hasil-sed.txt.

$ sed 's/hijau/ijo/g' test-sed.txt > hasil-sed.txt
$ cat hasil-sed.txt
apel merah,mangga ijo,jeruk oranye,belimbing kuning,melon ijo
daun ijo,ranting cokelat,rumput ijo,air bening,langit biru

Hasil dari perintah sed berhasil kita simpan pada file baru yang bernama hasil-sed.txt.

Gimana teman-teman? Perintah sed untuk mengganti teks ini susah atau mudah nih? Rencananya, di tulisan yang akan datang kita coba untuk gunakan perintah ini untuk fungsi yang lain. Sampai jumpa, bye~

[EDIT] Ternyata, kita bisa menggunakan perintah sed ini dan hasilnya langsung diterapkan pada file. Caranya, kita tambahkan flag -i. Jadi, perintah yang digunakan adalah sed -i .

Blog ini kayanya belum bisa jadi rujukan teknis yang sangat valid ya. Masih lebih cocok jadi catatan harian saya hehe.

Bye~

 

Leave a Comment