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 replacelama
adalah kata yang ingin diganti,baru
adalah penggantinyag
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~