Terminal: Umbenennen vieler Dateien mit einer CSV-Datei
Folgende Situation: In einem Ordner im Dateisystem liegen hunderte Dateien und dutzende dieser Dateien müssen umbenannt werden. Nun hat man nicht unbedingt Lust, jede Datei einzeln anzusprechen und entsprechend umzubenennen…
Was man aber – wenn es gut läuft – hat, ist eine CSV-Datei mit einer Liste dieser Dateien, in der ersten Spalte ist der alte, in der zweiten ist der neue Dateiname -> altneu.csv. Diese Datei kann man nun mit einem Shell-Skript dazu verwenden, alle aufgeführten Dateien umzubenennen -> rename.sh. CSV-Datei und Shell-Skript werden in den Ordner gespielt und das Shell-Skript ausgeführt, fertig!
Wie lautet nun der Inhalt des Shell-Skriptes? So:
#!/bin/bash
while read line
do
old=$(echo "$line" | awk -F"," '{print $1}')
new=$(echo "$line" | awk -F"," '{print $2}')
mv "$old" "$new"
done < altneu.csvDie CSV-Datei darf natürlich keine Spaltenbezeichnungen enthalten!
Erstellt von Ole Rosendahl 05. September 2014 • 1 Min. Lesezeit