Suchen Sie eine Zeichenfolge im Namen und bewegen Sie sich an die Stelle des Namens vor der Erweiterung

Suchen Sie eine Zeichenfolge im Namen und bewegen Sie sich an die Stelle des Namens vor der Erweiterung

ich habe viele Dateien in verschiedenen Unterverzeichnissen. Ich möchte alle Dateien umbenennen *-ABC-DE(7 numbers).ext in *-DE(7 numbers)-ABC.ext

Ist es möglich?

Antwort1

Gegeben

$ ls *.ext
bar-ABC-DE7654321.ext  foo-ABC-DE1234567.ext

Dann

$ rename -v 's/(ABC)-(DE\d{7})/$2-$1/' *.ext
rename(bar-ABC-DE7654321.ext, bar-DE7654321-ABC.ext)
rename(foo-ABC-DE1234567.ext, foo-DE1234567-ABC.ext)

ergebend

$ ls *.ext
bar-DE7654321-ABC.ext  foo-DE1234567-ABC.ext

NB-Test mit -ndem ersten

verwandte Informationen