Lanjutan dari tips replace string di linux bagian seblumnya (ya iyyalah, masa’ bagian sesudahnya). Kali ini untuk kasus harus melakukan penelusuran dan penggantian sampai ke semua subfolder di dalamnya.
Sebagai pembuka saya ingin membatalkan anjuran untuk menggunakan RPL, soalnya gak tau kenapa kalau jumlah file yang diganti banyak selalu error dan pesan terakhir cuman killed, padahal sebelumnya di pencarian bertingkat yang filenya sedikit lancar-lancar aja (kemungkinan komputer Bair yang jangkrik
).
Akhirnya harus mikir dan pakai gabungan sed dan find. Berikut command alakadarnya (yg penting berhasil :p) ;
find /lokasi/folder/induk/ -name *filter-nama-file* -type f -print0 | xargs -0 -n 1 sed -i -e ’s/StringYangDiganti/StringPengganti/g’
Untuk memperjelas, kita coba contoh kasus: Misalnya kita harus me-replace semua file .php yang jumlahnya ribuan dan berada di dalam folder, subfolder-subfolder dan subsubfolder-subsubfolder web dengan lokasi /home/bair/test/web. String yang ingin diganti adalah localhost/web/ menjadi $hostname, maka di terminal tinggal jalankan perintah;
find /home/bair/test/web/ -name *.php* -type f -print0 | xargs -0 -n 1 sed -i -e ’s/localhost\/web\//$hostname\//g’
Ya sudah tinggal tekan ENTER dan selesai
.
Keterangan: untuk beberapa karakter yang ingin diganti semisal; baris baru (orang sering bilang enter
), slash atau garis miring (/), dll, harus didahului dengan backslash (\).
Selamat mencoba.
THE END














