Hyæna

Through the darkness of future past

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.csv

Die CSV-Datei darf natürlich keine Spaltenbezeichnungen enthalten!



Ähnliche Artikel