Bagaimana saya bisa batch mengubah nama satu set nama file di Linux?


9

Saya memiliki folder dengan gambar bernama:

pic001-2.png
pic002-2.png
pic003-2.png 

Bagaimana cara mengubah nama mereka menjadi yang berikut?

pic001.png
pic002.png
pic003.png 

Saya sudah mencoba mv "pic*-2.png" "pic*.png"tetapi terus mendapatkan kesalahan.

Jawaban:


11

Ini akan menghapus yang pertama -2ditemukan di setiap nama file:

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

Untuk mengujinya, cukup tambahkan echoke mvbaris.


9

Anda membutuhkan perintah 'rename' dengan nama yang sesuai!

Coba sesuatu seperti ini:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

Dibutuhkan ekspresi reguler perl sebagai argumen pertama, sehingga opsi pencocokan pola dan manipulasi Anda cukup luas. Lihat halaman manual rename (1) untuk detail lengkap.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.