Es gibt ein praktisches Skript zum Umbenennen von Perl-Dateien, das zusammen mit dem Perl-Hauptpaket auf Debian-basierten Systemen (einschließlich Ubuntu) installiert wird. Es wird normalerweise benannt rename
, wird aber manchmal prename
(Perl umbenennen) bezeichnet. Verwenden Sie wie folgt:
rename expr file1 file2 file3
Der Befehl verwendet Perl zur Auswertung expr
für jedes file
Argument und benennt jede Datei in die Ausgabe der expr
Bewertung um. Für einfache Regex-Ersetzungen wie in Ihrem Beispiel:
rename 's(images/(.*)\.png$)(test/$1.test.png)' ./images/* # here's the expression: # s()() -- just like s/// (but i don't need to escape the / in the filename) # match regex: images/(.*)\.png$ -- match filenames of the form images/*.png # replace: test/$1.test.png -- turn them into test/*.test.png
Wenn Dateien nicht mit dem Ausdruck übereinstimmen (z. B. Nicht-PNG-Dateien), führt die Ersetzung keine Änderungen aus und ihre Dateinamen werden nicht geändert.