initial commit

This commit is contained in:
Marco Morath 2024-08-17 23:39:57 +02:00
parent ed4b18f8e8
commit ca6820e0d4
2 changed files with 41 additions and 0 deletions

View File

@ -1,2 +1,3 @@
# batch-rename-from-csv
This script renames files in a folder with the Information out of a csv-file. The renamed files were saved in a folder-structure, generated from the csv-entries.

40
batch_rename_from_csv.sh Executable file
View File

@ -0,0 +1,40 @@
#!/bin/bash
# Pfad zur CSV-Datei
csv_file="pfad/zur/datei.csv"
# Basisverzeichnis, in dem sich die Dateien und das Skript befinden
base_dir="pfad/zu/deinem/verzeichnis"
# Liest die CSV-Datei Zeile für Zeile ein
# Alle Spaltennamen der CSV müssen hier in der richtigen Reihenfolge genannt werden, auch wenn sie nicht benötigt werde
# Hinter IFS ist das Trennzeichen in der CSV-Datei einzusetzen (, oder ;)
while IFS=',' read -r original_dateiname schlagwort1 schlagwort2 datum_zeit; do
# Entferne Anführungszeichen, falls sie in der CSV-Datei vorhanden sind
original_dateiname=$(echo "$original_dateiname" | tr -d '"')
schlagwort1=$(echo "$schlagwort1" | tr -d '"')
schlagwort2=$(echo "$schlagwort2" | tr -d '"')
datum_zeit=$(echo "$datum_zeit" | tr -d '"')
# Extrahiere das Datum (die ersten 10 Zeichen)
# In der Datei ist das Datum (mit Zeit) im Format "2024-07-25 13:31:00" vorhanden.
datum=${datum_zeit:0:10}
# Erstelle den neuen Dateinamen im Schema "Datum_OriginalDateiname"
new_filename="${datum}_${original_dateiname}"
# Erstelle das Zielverzeichnis nach dem Schema "Schlagwort2/Jahr/Schlagwort1"
zielverzeichnis="$base_dir/$schlagwort2/${datum:0:4}/$schlagwort1"
# Erstelle das Verzeichnis, falls es noch nicht existiert
mkdir -p "$zielverzeichnis"
# Verschiebe die Datei an den neuen Speicherort mit dem neuen Namen
if [[ -f "$base_dir/$original_dateiname" ]]; then
mv "$base_dir/$original_dateiname" "$zielverzeichnis/$new_filename"
echo "Datei umbenannt und verschoben: $zielverzeichnis/$new_filename"
else
echo "Datei nicht gefunden: $base_dir/$original_dateiname"
fi
done < "$csv_file"