sed Perintah untuk Mengganti String dalam File

Sed Command Replace String File

Setiap kali kita bekerja dengan segala jenis file, itu adalah praktik yang sangat umum untuk membuat modifikasi pada file tersebut dengan mencari dan mengganti kata-kata. Sebagian besar editor teks memang menyediakan metode berbasis GUI yang berbeda untuk melakukan modifikasi ini. Namun, terkadang, Anda memerlukan cara untuk menemukan dan mengganti kata-kata di dalam file melalui terminal. Oleh karena itu, dalam artikel ini, kami akan memandu Anda melalui metode penggunaan perintah sed untuk mengganti string dalam file teks. Kami juga akan menyoroti berbagai skenario di mana perintah ini dapat digunakan.

Catatan: Kami akan menggunakan Linux Mint 20 untuk mendemonstrasikan penggunaan perintah sed untuk mengganti string dalam file. Anda juga dapat menggunakan rasa lain dari Linux jika Anda mau.



Penggunaan Perintah sed:

Sekarang kami akan menunjukkan beberapa contoh yang sangat menarik untuk menggambarkan penggunaan perintah sed di Linux. Mari kita lihat, bagaimana perintah ini bekerja dalam skenario yang berbeda.



Membuat File Teks untuk Demonstrasi:

Untuk mendemonstrasikan penggunaan perintah sed, kami ingin bekerja dengan file teks. Namun, Anda bahkan dapat membuat file Bash atau file lain pilihan Anda. Kedua, kita akan membuat file di direktori Home sehingga kita tidak perlu menentukan path yang rumit saat mengakses file ini. Untuk membuat file teks, langkah-langkah berikut harus dilakukan:



Klik pada ikon File Manager yang terletak di taskbar Linux Mint 20 Anda:

Sekarang buat file teks baru di direktori Home dengan mengklik kanan di mana saja di sana dan kemudian pilih opsi New Document dari menu cascading dan opsi Empty document dari menu sub-cascading. Setelah file teks dibuat, berikan nama yang sesuai untuk itu. Untuk contoh khusus ini, saya menamakannya sebagai sed.txt.



Klik dua kali pada file ini untuk membukanya dan ketik teks acak di dalamnya seperti yang ditunjukkan pada gambar di bawah. Simpan file teks ini dengan menekan Ctrl + S lalu tutup.

Sekarang luncurkan terminal di Linux Mint 20 seperti yang ditunjukkan pada gambar berikut:

Setelah meluncurkan terminal di Linux Mint 20, Anda dapat melihat semua contoh yang disebutkan di bawah ini satu per satu.

Menggunakan Perintah sed untuk mengganti semua Kemunculan Kata yang Diberikan:

Anda dapat menggunakan perintah sed untuk mengganti semua kemunculan kata tertentu dalam file teks. Sintaks untuk mencapai tujuan ini disebutkan di bawah ini:

$sed'S/sed/CariKata/GantiKata/' file.txt

Di sini, Anda perlu mengganti FindWord dengan kata yang ingin Anda ganti dan ReplaceWord dengan kata yang akan diganti. Selain itu, Anda juga perlu mengganti file dengan nama file tempat Anda ingin melakukan penggantian tersebut. Dalam skenario ini, saya telah mengganti FindWord dengan sed dan ReplaceWord dengan replace. Nama file kami adalah sed.txt. Hal ini juga ditunjukkan pada gambar berikut:

Eksekusi yang berhasil dari perintah ini akan menunjukkan kepada Anda perubahan yang terjadi karena menjalankan perintah ini di terminal Anda:

Menggunakan perintah sed untuk mengganti Kemunculan ke-n dari Kata yang Diberikan di setiap Baris:

Skenario di atas adalah skenario penggantian yang paling sederhana, namun terkadang, Anda tidak ingin mengganti semua kemunculan kata, melainkan hanya mengganti kemunculan pertama, kedua, atau ke-n dari kata itu di semua baris. Untuk melakukan ini, Anda dapat menjalankan perintah berikut:

$sed'S/CariKata/GantiKata/num' file.txt

Di sini, Anda perlu mengganti FindWord dengan kata yang ingin Anda ganti dan ReplaceWord dengan kata yang akan diganti. Selain itu, Anda juga perlu mengganti file dengan nama file tempat Anda ingin melakukan penggantian tersebut. Dalam skenario ini, saya telah mengganti FindWord replace dan ReplaceWord dengan sed. Nama file kami adalah sed.txt. Juga, num mengacu pada kemunculan atau posisi kata yang akan diganti. Dalam contoh yang ditunjukkan, saya ingin mengganti kemunculan pertama ganti dengan sed di setiap baris seperti yang ditunjukkan pada gambar di bawah ini:

Eksekusi yang berhasil dari perintah ini akan menunjukkan kepada Anda perubahan yang terjadi karena menjalankan perintah ini di terminal Anda:

Menggunakan perintah sed untuk mengganti Kata yang Diberikan di Baris Tertentu:

Terkadang, Anda hanya ingin mengganti kata tertentu di baris tertentu dan tidak di seluruh dokumen. Untuk melakukan itu, Anda secara eksplisit perlu menentukan nomor baris tertentu dalam perintah berikut:

$sed'Nomor Baris s/CariKata/GantiKata/' file.txt

Di sini, Anda perlu mengganti FindWord dengan kata yang ingin Anda ganti dan ReplaceWord dengan kata yang akan diganti. Selain itu, Anda juga perlu mengganti file dengan nama file tempat Anda ingin melakukan penggantian tersebut. Dalam skenario ini, saya telah mengganti FindWord sed dan ReplaceWord dengan replace. Nama file kami adalah sed.txt. Juga, Anda perlu mengganti LineNum dengan nomor baris dari baris tertentu di mana Anda ingin melakukan penggantian. Dalam contoh ini, kami ingin mengganti sed dengan replace pada baris nomor 2 dari file kami seperti yang ditunjukkan pada gambar berikut:

Eksekusi yang berhasil dari perintah ini akan menunjukkan kepada Anda perubahan yang terjadi karena menjalankan perintah ini di terminal Anda. Anda dapat dengan mudah memverifikasi bahwa perubahan tersebut hanya terjadi pada baris nomor 2 dari file kami dan bukan di seluruh teks.

Kesimpulan:

Setiap kali Anda merasa perlu mengganti kata apa pun dalam file, hal pertama yang perlu Anda lakukan adalah mengidentifikasi kebutuhan khusus Anda, yaitu apakah Anda ingin mengganti kata tertentu di seluruh file, atau Anda ingin mengganti kemunculan tertentu dari kata tertentu, atau Anda ingin mengganti kata itu di baris tertentu. Setelah Anda mengidentifikasi skenario khusus Anda, maka Anda dapat menggunakan metode khusus itu dari contoh yang dibahas dalam artikel ini.