Mengganti Nama File Secara Massal Menggunakan Find dan Sed
Saya sedang dalam proses membuat otomatisasi setting Samba PDC + LDAP di openSUSE dan mikir-mikir, bagaimana caranya mengganti nama-nama file konfigurasi agar sesuai dengan nama domain yang diinginkan.
Contohnya, saya punya sederetan file berawalan vavai (untuk nama domain vavai.com), antara lain file konfigurasi DNS dengan nama vavai.forward, vavai.reverse dan vavai.com yang ada di /var/lib/named/dyn dan /var/lib/named/master. Saya ingin menggantinya menjadi infothemes.forward, infothemes.reverse dan infothemes.com difolder yang sama.
Berikut adalah script file bash untuk melaksanakan penggantian. Menggunakan perintah find untuk mencari file, menampilkannya dengan awk, menggunakan pattern tertentu dengan sed dan menggantinya dengan mv.
#!/bin/sh
echo -n "Nama file yang lama : "
read oldfilename
echo -n "Nama file yang baru : "
read newfilename
echo "Semua nama file yang mengandung kata $oldfilename akan diganti dengan kata $newfilename"
regexp="s/$oldfilename/$newfilename/2"
find . -name "$oldfilename*" | awk '{print("mv "$1" "$1)}' | sed "$regexp" | /bin/sh
find . -type f -name "$newfilename*" -exec ls -l {} \;
Ganti tanda . didepan find jika ingin mencari file yang diinginkan difolder tertentu.
Popularity: 14% [?]





Iklannya google kok bisa tampil di blog bhs indonesia yach? gmn tuh triknya master?