Come posso rinominare in batch un set di nomi di file in Linux?


9

Ho una cartella con immagini denominate:

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

Come posso rinominarli come segue?

pic001.png
pic002.png
pic003.png 

Ho provato mv "pic*-2.png" "pic*.png"ma continuo a ricevere errori.

Risposte:


11

Questo eliminerà il primo -2trovato in ciascun nome file:

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

Per provarlo, basta anteporre echoalla mvlinea.


9

È necessario il comando 'rinomina' opportunamente chiamato!

Prova qualcosa del genere:

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

Prende un'espressione regolare perl come primo argomento, quindi le opzioni di abbinamento dei modelli e di manipolazione sono piuttosto estese. Vedi la pagina man rename (1) per tutti i dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.