Cara menggunakan perintah SED untuk mengganti string dalam file

Cara menggunakan perintah SED untuk mengganti string dalam file

Apakah Anda pernah memiliki situasi di mana Anda perlu mengganti kata atau kalimat di banyak file? Anda bisa menyalin dan menempelkannya, atau mungkin ada skrip yang ada yang dapat melakukan pekerjaan itu. Tapi bagaimana jika Anda hanya perlu menggantinya dengan kata atau kalimat lain di tempat lain? Anda bisa menggunakan temukan, tetapi itu akan terlalu umum dan membutuhkan menulis skrip untuk tugas ini. Dan bagaimana jika Anda bahkan tidak tahu kata atau kalimat apa yang harus Anda temukan dan ganti? Bagaimana dengan menggunakan sed Lalu? Jika Anda tidak terbiasa dengan baris perintah UNIX, SED adalah editor aliran. Ini adalah editor teks sederhana yang dibaca dari input standar dan melakukan operasi pengeditan di aliran saat dibaca. Ini biasanya digunakan untuk mencari dan mengganti fungsionalitas dalam skrip.

Di artikel ini, kami akan menunjukkan kepada Anda beberapa contoh cara menggunakan SED untuk melakukan pencarian dan mengganti teks dalam file.

Temukan dan ganti string di file

Jika Anda hanya perlu melakukan pencarian dan mengganti sederhana, Anda dapat menggunakan sintaks berikut:

sed -i 's/string_to_find/string_to_replace/' file1 file2 filen 

Di Sini:

  • -Saya: Bendera ini menunjukkan kepada SED bahwa file input Anda diharapkan menjadi salah satu file yang ditentukan setelah perintah.
  • string_to_find: Ini adalah string yang ingin Anda cari di file.
  • String_to_replace: Ini adalah string yang ingin Anda ganti string what_to_find di dalam file.
  • File1 File2 Filen: Ini adalah daftar file yang akan dicari dan diganti.

Perintah berikut akan mencari semua string "halo" di selamat datang.txt mengajukan. Kemudian ganti dengan string baru "Howdy" di file yang sama.

Sed -i 's/hello/howdy/g' welcome.txt  

Anda juga dapat membuat cadangan file asli sebelum membuat perubahan dengan -Saya diikuti dengan beberapa ekstensi. Misalnya:

sed -i.Cadangan/halo/howdy/g 'selamat datang.txt  

Ini akan membuat sambutan file.txt.Cadangan di direktori saat ini dengan konten file asli.

Ganti teks secara rekursif dalam beberapa file

Perintah berikut bermanfaat untuk mengganti string di beberapa file sekaligus di direktori /opt /docs. Di sini temukan akan menavigasi ke semua file di bawah direktori yang ditentukan dan menjalankan perintah SED satu per satu.

find/opt/docs/-type f -exec sed -i 's/hello/howdy/g' ;  

Ganti teks tanpa mempengaruhi file asli

Jika Anda tidak ingin membuat perubahan dalam file asli Anda dan membuat file baru dengan string yang diubah, gunakan perintah berikut.

Sed 's/hello/howdy/g' welcome.txt> welcome_2.txt  

Perintah ini akan membuat file baru selamat datang_2.txt dengan teks yang dimodifikasi. File asli dengan tetap tidak berubah.

Kesimpulan

Perintah SED adalah alat yang ampuh yang dapat digunakan untuk mengedit teks dalam file. Ini berguna ketika Anda memiliki situasi di mana Anda perlu menemukan dan mengganti string di banyak file. Anda bisa menggunakan temukan, tetapi itu akan terlalu umum dan membutuhkan menulis skrip. Dan bagaimana jika Anda bahkan tidak tahu kata atau kalimat apa yang harus Anda temukan dan ganti? Menggunakan SED adalah solusi yang lebih baik.