Mengganti Nama File Secara Massal Menggunakan Find dan Sed

find

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: 9% [?]

One Response to “ Mengganti Nama File Secara Massal Menggunakan Find dan Sed ”

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

Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>