rename regex kann Dateien nicht umbenennen

rename regex kann Dateien nicht umbenennen

Ich habe eine Reihe von Bildern 1.jpg 2.PNG 3.gif 4.jpegin einem Verzeichnis. Ich möchte sie alle umbenennen in 1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg.

Ich habe versucht, diese Befehle auszuführen, aber sie hatten keine Auswirkungen auf die Dateien im Verzeichnis:

rename 's/^(\d+)\.(.*)/$1-s.$2/' .
rename 's/^(\d+)\.(.+)/$1-s.$2/' .
rename 's/.*\.(.+)/$1-s.$2/' .

Was habe ich falsch gemacht?

Antwort1

Verwenden Sie das Platzhalterzeichen *für Dateinamen:

rename 's/^(\d+)\.(.*)/$1-s.$2/' *

und man kann es etwas vereinfachen:

rename 's/^(\d+)(?=\.)/$1-s/' *

wobei es (?=\.)sich um einen positiven Vorausschau handelt, der sicherstellt, dass wir einen Punkt nach der Ziffer haben, ohne ihn zu erfassen.

verwandte Informationen