initial commit
This commit is contained in:
parent
ed4b18f8e8
commit
ca6820e0d4
@ -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
40
batch_rename_from_csv.sh
Executable 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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user