#!/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"