Rename Banyak File dengan Regex

01 Apr 2021 · 2 min read

Di Linux, kita bisa rename banyak file dengan Regex.

Program yang digunakan adalah:

  • rename
  • prename

Install dulu program rename:

sudo apt install rename

Note: sebenarnya program rename ada yang dari util-linux dan File::Rename (Perl), kita akan pakai yang dari Perl.. karena dia support regex.

Coba baca issue ini:

Jika kamu menggunakan feodra, bisa pakai prename.

Install dengan perintah:

sudo dnf install prename

Setelah itu masuk ke folder tempat semua file berada, lalu jalankan perintah rename dengan regex.

rename -n 's/<regex untuk search file>/<regex untuk replace>/' *.ext

Opsi -n akan memberikan output dari hasil rename, ini berguna untuk coba-coba regex-nya sebelum di rename.

Simbol s/ para regex berarti kita akan melakukan subtitusi atau replace.

Contoh:

list file sebagai berikut:

[Anime] Black Clover BD - 01.mkv
[Anime] Black Clover BD - 02.mkv
[Anime] Black Clover BD - 03.mkv
[Anime] Black Clover BD - 04.mkv
[Anime] Black Clover BD - 05.mkv

Kita ingin rename menjadi seprti ini:

Black Clover - 01.mkv
Black Clover - 02.mkv
Black Clover - 03.mkv
Black Clover - 04.mkv
Black Clover - 05.mkv

Maka perintahnya:

rename -n 's/(\[w+]) (Black Clover) BD - (\d.)/$2 - $3' *.mkv

Penjelasan tentang regex-nya bisa dicek di regexr.com/5prb7.

Hasil outputnya:

rename([Anime] Black Clover BD - 01.mkv, Black Clover - 01.mkv)
rename([Anime] Black Clover BD - 02.mkv, Black Clover - 02.mkv)
rename([Anime] Black Clover BD - 03.mkv, Black Clover - 03.mkv)
rename([Anime] Black Clover BD - 04.mkv, Black Clover - 04.mkv)
rename([Anime] Black Clover BD - 05.mkv, Black Clover - 05.mkv)

Jika sudah yakin, opsi -n bisa dihapus untuk melakukan rename.

rename 's/(\[w+]) (Black Clover) BD - (\d)/$2 - $3' *.mkv

Selamat mecoba.