Rename Multiple Files dengan shell script

Jadi, saya punya list file berikut (di list menggunakan command ls):

1.nasdem.png
1.nasdem@2x.png
10.hanura.png
10.hanura@2x.png
11.damai.png
11.damai@2x.png
12.aceh.png
12.aceh@2x.png
13.aceh.png
13.aceh@2x.png
14.pbb.png
14.pbb@2x.png
15.pkp.png
15.pkp@2x.png
2.pkb.png
2.pkb@2x.png
3.pks.png
3.pks@2x.png
4.pdip.png
4.pdip@2x.png
5.golkar.png
5.golkar@2x.png
6.gerindra.png
6.gerindra@2x.png
7.demokrat.png
7.demokrat@2x.png
8.pan.png
8.pan@2x.png
9.ppp.png
9.ppp@2x.png

kemudian saya ingin menghapus nama-nama partai dari nama file tersebut sehingga, misalnya jika nama file awalnya adalah 1.nasdem.png akan dirubah menjadi 1.png, atau jika nama filenya 3.pks@2x.png akan dirubah menjadi 3@2x.png. Salah seorang kolega kantor menyarankan untuk menggunakan explorer (finder di mac), tapi saya tertarik untuk menggunakan terminal/shell script. Setelah mencari-cari caranya, akhirnya saya menggunakan cara berikut (menggunakan awk):

1. ini untuk merename file-file yang berakhiran @2x.png

ls | awk '/[0-9]+/{old=$0;gsub(/\..*@2x\./,"@2x.",$0);system("mv \""old"\" "$0)}'

2. untuk file yang tidak berakhiran @2x.png langsung seperti ini

ls | awk '/[0-9]+/{old=$0;gsub(/\..*\./,".",$0);system("mv \""old"\" "$0)}'

penjelasannya kurang lebih seperti ini:
$> ls

ini me-list semua daftar file yang ada di direktori, kemudian di pipeline ke awk
>ls | awk
bagian ini
/[0-9]+/
mengharuskan file diawali dengan digit, setelah itu:
$>ls | awk ‘/[0-9]+/{old=$0;gsub(/\..*\./,”.”,$0);
simpan nama file dalam variable old, dan substitusi semua karakter diantara dua titik dengan sebuah titik. langkah terakhir rename file dengan perintah mv
>ls | awk ‘/[0-9]+/{old=$0;gsub(/\..*\./,”.”,$0);system(“mv \””old”\” “$0)}’

jadidah kerename semua filenya:
1.png
10.png
10@2x.png
11.png
11@2x.png
12.png
12@2x.png
13.png
13@2x.png
14.png
14@2x.png
15.png
15@2x.png
1@2x.png
2.png
2@2x.png
3.png
3@2x.png
4.png
4@2x.png
5.png
5@2x.png
6.png
6@2x.png
7.png
7@2x.png
8.png
8@2x.png
9.png
9@2x.png

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s