sed
singkatan dari editor aliran. Ini adalah editor berbasis baris perintah untuk Linux. Penggunaan sed yang populer adalah untuk mengedit file sebagai bagian dari skrip otomatisasi di Linux, karena editor biasa memerlukan input pengguna aktif dan tidak dapat mengedit file di luar layar editor. Sed paling sering digunakan untuk melakukan pencarian dan penggantian dari baris perintah.
Jenis editor teks ini juga dapat dikategorikan sebagai editor teks non-interaktif.
Mari kita lihat beberapa opsi umum untuk mengedit file menggunakan Sed. Kami akan mengambil file berikut sebagai contoh:
$: cat test.txt Seekor anjing coklat cepat melompati kucing malas. Sistem Operasi Linux. Hutan di dekat tempat saya memiliki kucing dan juga serigala.
Cari dan Ganti
Untuk mencari string dalam file dan menggantinya dengan string lain, jalankan:
sed -i "s/cat/fox/g" test.txt
Di sini, -Saya
flag menginstruksikan sed untuk menulis perubahan ke file. Tanpa bendera ini, sed
hanya akan menampilkan file dengan string yang diubah.
Dalam kutipan, kami memiliki s/kucing/rubah/g
. Itu S
adalah untuk mencari dan mengganti perintah sed
. Kemudian kita memiliki string yang akan dicari, yaitu kucing
. Kemudian string untuk menggantikannya, yaitu, rubah
. Akhirnya, kami memiliki opsi G
, yang menginstruksikan sed
untuk mengganti semua kemunculan di semua baris file. Tanpa G
, sed hanya akan menggantikan kemunculan pertama dari kucing
pada setiap baris.
Regex juga dapat digunakan di sini.
sed -i "s/f[a-z]*\./cat\./g"
Menyisipkan
Untuk menyisipkan teks sebelum baris dengan string yang cocok, gunakan:
sed -i "/cat/i Mulai:" test.txt
Di Sini, kucing
adalah string yang dicari dan Awal:
adalah string yang harus dimasukkan sebelum baris tempat string yang dicari ditemukan.
Demikian pula, untuk menyisipkan teks setelah baris, gunakan:
sed -i "/ fox/a End." tes.txt
Menghapus
Untuk menghapus baris yang berisi substring, gunakan:
sed -i "/Linux/d" test.txt
Untuk menghapus baris dengan nomor baris, mis. baris pertama, gunakan:
sed -i '1d' test.txt
Menggabungkan beberapa fungsi
Untuk menggabungkan beberapa fungsi, mis. cari dan ganti, hapus, dalam satu perintah, -e
bendera dapat digunakan.
sed -i -e "s/fox/cat/g" -e '2d' test.txt
? Bersulang!