Trik sederhana ini akan sangat bermanfaat bagi beginner atau pemula yg ingin mempelajari manajemen server Linux. Yaitu cara mengubah suatu kata atau string dalam sebuah file tanpa membuka file tsb via file editor semisal vi/vim/nano/pico. Gimana caranya? Kita gunakan command sed seperti yg akan saya contohkan berikut ini.
Karena saya agak sering berkutat dengan salah satu cms yg paling populer, wordpress, maka contoh yg saya uraikan di bawah ini adalah ketika saya mengedit file wp-config.php. Biasanya untuk mengetahui data sql yg digunakan di wordpress tsb dapat saya cek dengan menjalankan command ini di folder public_html atau folder di mana file wp-config.php berlokasi.
cat wp-config.php |grep DB |head -3
Atau jika tidak sedang berada di direktori tsb bisa juga langsung ditambahkan direktori lokasinya, jadi akan seperti ini:
cat /home/admin/web/linuxbox.id/public_html/wp-config.php |grep DB |head -3
Keren kan? Jadi ga boros gitu lho menuh-menuhin layar kalau kita buka pake file editor atau kita tampilkan dengan perintah cat
saja. Hasilnya kita akan bisa langsung lihat nama database, username database dan passwordnya.
define( 'DB_NAME', 'admin_wpx76' );
define( 'DB_USER', 'admin_wpx76' );
define( 'DB_PASSWORD', 'B0[S[zpZv5' );
OK sekarang kembali ke topik yaitu penggunaan command sed
untuk mengubah detail sql tsb. Di situ kebetulan nama database dan usernamenya sama yaitu admin_wpx76 yg akan kita ganti menjadi misalnya wp99_new maka command sed
yg kita jalankan adalah
sed -i 's/admin_wpx76/wp99_new/g' wp-config.php
Kalau kita cek lagi dengan perintah cat
seperti contoh di atas maka terlihat sudah berubah begini:
define( 'DB_NAME', 'wp99_new' );
define( 'DB_USER', 'wp99_new' );
define( 'DB_PASSWORD', 'B0[S[zpZv5' );
Jika passwordnya juga ingin diedit langkahnya tentu saja juga sama. Eh tapi tunggu dulu, karena password pada contoh di atas menggunakan karakter khusus yaitu [
maka kalau sed kita jalankan seperti sebelumnya akan menghasilkan error alias gagal tereksekusi. sed: -e expression #1, char 21: unterminated `s' command
Untuk menjinakkan hal ini, kita butuh escape character yaitu kita tambahkan backslash \
di depan dan belakang masing-masing karakter khusus yg ada. Perhatikan perintah ini:
sed -i 's/B0\[\S\[\zpZv5/passwordanyar/g' wp-config.php
Hasilnya password dalam file wp-config.php tsb akan berubah sesuai yg dijalankan dalam perintah sed
tadi yaitu passwordanyar. Demikianlah contoh penggunaan perintah sed
untuk mengubah string atau kata dalam sebuah file tanpa membukanya dg file editor.