Nafies Luthfi

Life will always feel wonderful if we always think positively.

Search dan Replace String di Terminal Ubuntu

Bismillahirrahmanirrahim.

Misal kita memutuskan ingin mengganti sebuah (atau frase) kata yang ada di beberapa file di dalam satu folder secara bersamaan, biasanya kita menggunakan fitur search and replace di teks editor. Yap, fitur ini sangat membantu sekali untuk keperluan itu. Kalau di dunia programming biasanya fitur ini kita gunakan untuk mengganti nama-nama variabel, function, (atau apapun) secara bersamaan.

Nah saya pribadi menggunakan fitur Find in Files dari Sublime Text untuk melakukannya. Tetapi rasanya masih belum optimal (baca: kurang cepat), karena setelah replace, kita harus simpan satu-persatu file-filenya.

Karena perlu yang ringkas, saya googling dengan kata kunci “search replace string ubuntu terminal”, dan ketemu jawaban di halaman stackoverflow ini. Jadi di terminal di Ubuntu, kita bisa menggunakan perintah ini untuk melakukan search and replace dengan cepat:

# Perintah
$ find nama_folder -type f -exec sed -i -e 's/kata_diganti/kata_pengganti/g' -- {} +

Misal kita berikan perintah pada terminal:

# Contoh
$ find resources -type f -exec sed -i -e 's/formatDecimal/format_decimal/g' -- {} +

Maka semua kata formatDecimal pada file-file dalam folder resources akan berubah menjadi format_decimal. Perubahan yang terjadi bisa kita lihat di sample git commit ini.

Sangat disarankan agar teman-teman menggunakan version control (seperti git) sebelum menggunakan perintah ini. Just in case ada perubahan yang tidak diinginkan, maka kita tinggal melakukan git reset untuk mengembalikan semua perubahan.

Baik teman-teman, itu saja tips cara singkat dan cepat untuk mengubah kata di beberapa file text dalam folder melalui terminal Ubuntu. Semoga bermanfaat, terima kasih.