Perintah untuk Mengganti Rentetan dalam Fail

Sed Command Replace String File



Setiap kali kita menggunakan fail apa pun, adalah kebiasaan untuk membuat pengubahsuaian pada fail tersebut dengan mencari dan mengganti perkataan. Sebilangan besar penyunting teks menyediakan kaedah berdasarkan GUI yang berbeza untuk melakukan pengubahsuaian ini. Namun, kadang-kadang, anda memerlukan cara untuk mencari dan mengganti perkataan dalam fail melalui terminal. Oleh itu, dalam artikel ini, kami akan memandu anda melalui kaedah menggunakan perintah sed untuk mengganti rentetan dalam fail teks. Kami juga akan menerangkan pelbagai senario di mana arahan ini dapat digunakan.

Catatan: Kami akan menggunakan Linux Mint 20 untuk menunjukkan penggunaan perintah sed untuk mengganti rentetan dalam fail. Anda juga boleh menggunakan Linux yang lain jika anda mahu.







Penggunaan Perintah sed:

Sekarang kami akan menunjukkan kepada anda beberapa contoh yang sangat menarik untuk menggambarkan penggunaan perintah sed di Linux. Mari kita lihat, bagaimana arahan ini berfungsi dalam senario yang berbeza.



Membuat Fail Teks untuk Demonstrasi:

Untuk menunjukkan penggunaan perintah sed, kami ingin bekerja dengan fail teks. Walau bagaimanapun, anda bahkan boleh membuat fail Bash atau fail lain pilihan anda. Kedua, kami akan membuat fail di direktori Home sehingga kami tidak perlu menentukan jalan yang kompleks semasa mengakses fail ini. Untuk membuat fail teks, langkah-langkah berikut harus dilakukan:



Klik pada ikon Pengurus Fail yang terdapat di bar tugas Linux Mint 20 anda:





Sekarang buat fail teks baru di direktori Home dengan mengklik kanan di mana sahaja di sana dan kemudian memilih pilihan Dokumen Baru dari menu lata dan pilihan Kosongkan dokumen dari menu sub-lata. Setelah fail teks dibuat, berikan nama yang sesuai dengannya. Untuk contoh ini, saya telah menamakannya sebagai sed.txt.



Klik dua kali pada fail ini untuk membukanya dan taipkan sebarang teks rawak di dalamnya seperti yang ditunjukkan dalam gambar di bawah. Simpan fail teks ini dengan menekan Ctrl + S dan kemudian tutup.

Sekarang lancarkan terminal di Linux Mint 20 seperti yang ditunjukkan dalam gambar berikut:

Setelah melancarkan terminal di Linux Mint 20, anda dapat melalui semua contoh yang disebutkan di bawah ini satu persatu.

Menggunakan Perintah sed untuk menggantikan semua Kejadian Kata yang Diberi:

Anda boleh menggunakan perintah sed untuk mengganti semua kejadian kata tertentu dalam fail teks. Sintaks untuk mencapai matlamat ini disebutkan di bawah:

$sed'S/sed/FindWord/Ganti Kata Kunci/'File.txt

Di sini, anda perlu mengganti FindWord dengan perkataan yang ingin anda ganti dan ReplaceWord dengan perkataan yang akan diganti. Selain itu, anda juga perlu mengganti fail dengan nama fail di mana anda ingin membuat penggantian ini. Dalam senario ini, saya telah mengganti FindWord dengan sed dan ReplaceWord dengan menggantikan. Nama fail kami adalah sed.txt. Ia juga ditunjukkan dalam gambar berikut:

Pelaksanaan perintah ini yang berjaya akan menunjukkan kepada anda perubahan yang telah berlaku kerana menjalankan perintah ini di terminal anda:

Menggunakan perintah sed untuk menggantikan Kejadian Kata yang ke-n di setiap Baris:

Senario di atas adalah senario penggantian yang paling mudah, namun kadang-kadang, anda tidak mahu mengganti semua kejadian perkataan sebaliknya anda hanya ingin mengganti kejadian pertama, kedua, atau n kata itu di semua baris. Untuk melakukan ini, anda boleh melaksanakan perintah berikut:

$sed'S/FindWord/Ganti Kata Kunci/num ’file.txt

Di sini, anda perlu mengganti FindWord dengan perkataan yang ingin anda ganti dan ReplaceWord dengan perkataan yang akan diganti. Selain itu, anda juga perlu mengganti fail dengan nama fail di mana anda ingin membuat penggantian ini. Dalam senario ini, saya telah mengganti FindWord menggantikan dan ReplaceWord dengan sed. Nama fail kami adalah sed.txt. Num juga merujuk kepada kejadian atau kedudukan perkataan yang akan diganti. Dalam contoh yang ditunjukkan, saya ingin mengganti kejadian penggantian pertama dengan sed di setiap baris seperti yang ditunjukkan dalam gambar di bawah:

Pelaksanaan perintah ini yang berjaya akan menunjukkan kepada anda perubahan yang telah berlaku kerana menjalankan perintah ini di terminal anda:

Menggunakan perintah sed untuk menggantikan Kata Diberikan dalam Garis Tertentu:

Kadang-kadang, anda hanya mahu mengganti perkataan yang diberikan dalam baris tertentu dan bukan dalam keseluruhan dokumen. Untuk melakukannya, anda secara jelas perlu menentukan nombor baris tertentu dalam arahan berikut:

$sed‘LineNum s/FindWord/Ganti Kata Kunci/'File.txt

Di sini, anda perlu mengganti FindWord dengan perkataan yang ingin anda ganti dan ReplaceWord dengan perkataan yang akan diganti. Selain itu, anda juga perlu mengganti fail dengan nama fail di mana anda ingin membuat penggantian ini. Dalam senario ini, saya telah mengganti FindWord sed dan ReplaceWord dengan menggantikan. Nama fail kami adalah sed.txt. Juga, anda perlu mengganti LineNum dengan nombor garis dari baris tertentu di mana anda ingin membuat penggantian. Dalam contoh ini, kami ingin mengganti sed dengan ganti pada baris nombor 2 fail kami seperti yang ditunjukkan dalam gambar berikut:

Kejayaan pelaksanaan perintah ini akan menunjukkan kepada anda perubahan yang telah terjadi kerana menjalankan perintah ini di terminal anda. Anda boleh mengesahkan bahawa perubahan tersebut hanya berlaku pada baris nombor 2 fail kami dan bukan dalam keseluruhan teks.

Kesimpulan:

Setiap kali anda merasakan keperluan untuk mengganti perkataan dalam fail, perkara pertama yang perlu anda lakukan adalah mengenal pasti keperluan khusus anda iaitu sama ada anda mahu mengganti perkataan tertentu itu dalam keseluruhan fail, atau anda ingin mengganti kejadian tertentu dari perkataan itu, atau anda mahu menggantikan perkataan itu dalam baris tertentu. Setelah anda mengenal pasti senario anda, anda boleh menggunakan kaedah khusus tersebut dari contoh yang dibincangkan dalam artikel ini.