Mehrere Dateien umbenennen

Infected

Member
Hallo zusammen,
ich möchte gerne mehrere Dateien umbenennen.
Allerdings ist das per Hand sehr aufwändig.

Es gibt doch bestimmt ein kleines Programm, mit dem man das in Debian machen kann.

Ich habe auch schon selbst gesucht und habe mmv gefunden.
Allerdings komme ich damit nicht zurecht.

So sind die Dateien benannt:
1_[self] Bild1.jpg
2_[self] Bild2.jpg
3_[self] Bild3.jpg
...

Das Problem ist, dass ich die [ Klammer löschen und die ] durch ein Leerzeichen und einem Minus ersetzen möchte.

So also:
1_self - Bild1.jpg
2_self - Bild2.jpg
3_self - Bild3.jpg
...


Leider bin ich zu doof und bekomme es mit den Wildcards etc. nicht hin.
könnt ihr mir da helfen?
 
Hey,

mal sehr schnell und dreckig
Code:
for i in *\ *jpg; do mv "$i" "$(echo $i | sed "s/\[//" | sed "s/\]/\ -/")"; done

Eigentlich trennt die for-Schleife bei jedem Leerzeichen (Stichwort IFS), daher kannst du mittels *\ *jpg den Dateinamen mit Leerzeichen als einen Parameter anziehen.

mv "$i", da der Dateiname Leerzeichen hat und mv sonst meckert.
"$(xxx)" auch hier wegen späteren Leerzeichen im Ziel-Dateinamen.

Dann halt noch uneffizienter, da mit zwei Aufrufen, SED-Code - aber läuft.

Gruß
Markus
 
http://wiki.ubuntuusers.de/rename

Denk daran, dass du [ und ] escapen musst.
Ich neige für solche Aufgaben schon Python zu nutzen (was oftmals sogar umständlicher sein kann). Da kann ich wenigstens vernünftig mit Regex arbeiten ohne Angst haben zu müssen, dass die Shell wieder irgendwas komisches macht bzw. der Befehl nur eine spezielle Untermenge von REGEX unterstützt. Auch die Stringmanipulation finde ich in Python um einiges einfacher. So einen LineNoise wie im Beispiel kann ich mir nicht mehr antun. Allein schon das $(echo $i... sagt meinem Gehirn, dass es abschalten soll.
 
Last edited by a moderator:
Back
Top