Cara Menggunakan Sed dalam Linux

Sed bermaksud editor strim. Ia adalah editor berasaskan baris arahan untuk Linux. Penggunaan sed yang popular adalah untuk mengedit fail sebagai sebahagian daripada skrip automasi di Linux, seperti biasa editor memerlukan input pengguna aktif dan tidak boleh mengedit fail di luar skrin editor. Sed paling biasa digunakan untuk mencari dan menggantikan daripada baris arahan.

Penyunting teks jenis ini juga boleh dikategorikan sebagai penyunting teks bukan interaktif.

Mari kita lihat beberapa pilihan biasa untuk mengedit fail menggunakan Sed. Kami akan mengambil fail berikut sebagai contoh:

$: cat test.txt Seekor anjing coklat yang pantas melompat ke atas kucing yang malas itu. Sistem Operasi Linux. Hutan berhampiran tempat saya mempunyai kucing dan juga serigala. 

Cari dan Ganti

Untuk mencari rentetan dalam fail dan gantikan dengan rentetan lain, jalankan:

sed -i "s/cat/fox/g" test.txt

Di sini, yang -i flag mengarahkan sed untuk menulis perubahan pada fail. Tanpa bendera ini, sed hanya akan memaparkan fail dengan rentetan yang diubah.

Dalam petikan, kita ada s/kucing/musang/g. The s adalah untuk perintah mencari dan menggantikan sed. Kemudian kita mempunyai rentetan untuk dicari, iaitu kucing. Kemudian rentetan untuk menggantikannya dengan, iaitu, musang. Akhirnya, kami mempunyai pilihan g, yang mengarahkan sed untuk menggantikan semua kejadian pada semua baris fail. Tanpa g, sed akan menggantikan hanya kejadian pertama kucing pada setiap baris.

Regex juga boleh digunakan di sini.

sed -i "s/f[a-z]*\./cat\./g"

Sisipkan

Untuk memasukkan teks sebelum baris dengan rentetan yang sepadan, gunakan:

sed -i "/cat/i Mula:" test.txt

di sini, kucing ialah rentetan yang dicari dan Mulakan: ialah rentetan untuk dimasukkan sebelum baris di mana rentetan yang dicari ditemui.

Begitu juga, untuk memasukkan teks selepas baris, gunakan:

sed -i "/musang/a Tamat." test.txt

Padam

Untuk memadam baris dengan mengandungi subrentetan, gunakan:

sed -i "/Linux/d" test.txt

Untuk memadam baris dengan nombor baris, cth. baris pertama, gunakan:

sed -i '1d' test.txt

Menggabungkan pelbagai fungsi

Untuk menggabungkan pelbagai fungsi, cth. cari dan ganti, padam, dalam satu arahan, -e bendera boleh digunakan.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? Cheers!