DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Umbenennen von Dateien durch Zeichenersetzung

| Comments

Manchmal kommt es vor, dass man viele Dateien in einem bestimmten Muster abgespeichert hat. Zum Beispiel sind meine Fotografien als <kameramodell>_<datum>_<fortl.zahl> gespeichert. Nun möchte man zum Beispiel, dass das Kameramodell nicht mehr angezeigt wird. Dies kann man durch Anpassen eins der folgenden Kommandos erledigen. Natürlich müssen dafür die Bilder in einem Ordner liegen, zu dem man vorher navigiert hat.

Beide unten stehenden Befehle ersetzen die Zeichenkette foo durch bar. Das heißt, wenn es Dateien gibt, die sich football, footer, oder barfoot nennen, werden diese in barball, barer und barbar umbenannt:

1
for i in ./*foo*; do mv -- "$i" "${i//foo/bar}"; done
1
ls * | sed -e 'p; s/foo/bar/' | xargs -n2 mv

Der angepasste Befehl für mein Anliegen lautet:

1
ls * | sed -e 'p; s/<kamerahersteller>_//' | xargs -n2 mv

Durch die beiden gefolgten Schrägstriche wird die Zeichenkette gelöscht.

Quelle: commandlinefu.com

Comments