Dateien mit Regular Expressions umbenennen

Ich stand heute vor dem Problem, ca. 350 Dateien die ihre Endung durch ein „_original“ ergänzt hatten wieder zu ihrem ursprünglichen Namen umzubenennen.

Manuell? Wohl kaum!

OS X Yosemite hat eine wunderbare Funktion, um in reihenweise Dateien mit Suchen/Ersetzen um zu benennen. Wenn man damit allerdings die Endung ändert, dann fragt er für jede Datei nach. Also auch keine Lösung.

Aber wofür arbeitet man auf einem Unix? Eine kurze Internetrecherche förderte den folgenden Bash-Schnipsel zu Tage:

<p class="p1"></p>
<p class="p1">regex="(.*)_original"
find . -regex '.*_original' -print0 | while read -d '' -r; do [[ $REPLY =~ $regex ]] && mv "$REPLY" "${BASH_REMATCH[1]}"; done</p>

 Funktioniert super und ist schön schnell. Muss man sich merken!