# Datei-Konsolidierung nach Monat Ein Bash-Skript, um Dateien aus Verzeichnissen im Format `Jahr-Monat-Tag-Stunde` (z. B. `2026-05-04-10`) in monatliche Ordner (`Jahr-Monat`) zusammenzufassen. Dabei wird die **Unterverzeichnisstruktur beibehalten** und nur die **neueste Version** jeder Datei kopiert. --- ## 📌 Voraussetzungen - **Betriebssystem**: Linux oder macOS (mit Bash-UnterstĂŒtzung) - **Bash**: Mindestens Version 4.0 (fĂŒr `BASH_REMATCH`) - **Rechte**: AusfĂŒhrbare Berechtigungen fĂŒr das Skript --- ## đŸ“„ Installation 1. **Skript herunterladen oder erstellen**: Speichere das Skript als `consolidate_monthly_files_with_progress.sh` in deinem Projektverzeichnis. 2. **AusfĂŒhrbar machen**: ```bash chmod +x consolidate_monthly_files_with_progress.sh ``` --- ## 🚀 Verwendung ### Grundlegende AusfĂŒhrung FĂŒhre das Skript im **ĂŒbergeordneten Verzeichnis** aus, das die `Jahr-Monat-Tag-Stunde`-Ordner enthĂ€lt: ```bash ./consolidate_monthly_files_with_progress.sh ``` ### Beispielverzeichnisstruktur ``` . ├── 2026-05-04-10 │ ├── Unterordner1 │ │ └── datei1.txt │ └── datei2.txt ├── 2026-05-04-11 │ ├── Unterordner1 │ │ └── datei1.txt (neuere Version) │ └── datei3.txt └── 2026-06-01-09 └── datei4.txt ``` ### Ergebnis Nach der AusfĂŒhrung wird ein `consolidated`-Verzeichnis erstellt: ``` consolidated/ ├── 2026-05 │ ├── Unterordner1 │ │ └── datei1.txt (neueste Version aus 2026-05-04-11) │ ├── datei2.txt │ └── datei3.txt └── 2026-06 └── datei4.txt ``` --- ## 📊 Fortschrittsanzeige WĂ€hrend der AusfĂŒhrung wird ein **Fortschrittsbalken** angezeigt: ``` Fortschritt: [===== ] 50% (5/10 Verzeichnisse, 25 Dateien kopiert) ``` Am Ende wird eine Zusammenfassung ausgegeben: ``` Fertig! 100 Dateien geprĂŒft, 42 Dateien kopiert. ``` --- ## ⚙ Anpassungen ### Zielverzeichnis Ă€ndern StandardmĂ€ĂŸig wird das Zielverzeichnis `./consolidated` verwendet. Um es anzupassen, Ă€ndere die Variable `TARGET_DIR` im Skript: ```bash TARGET_DIR="/pfad/zum/zielverzeichnis" ``` ### Nur bestimmte Dateitypen kopieren Falls nur bestimmte Dateiendungen (z. B. `.txt`) kopiert werden sollen, passe den `find`-Befehl an: ```bash find "$dir" -type f -name "*.txt" | while read -r file; do ``` --- ## ⚠ Wichtige Hinweise 1. **Testlauf**: FĂŒhre das Skript zunĂ€chst in einer **Kopie deiner Daten** aus, um sicherzustellen, dass es wie erwartet funktioniert. 2. **Sicherheit**: Das Skript ĂŒberschreibt keine Dateien außerhalb des `consolidated`-Verzeichnisses. 3. **Leere Verzeichnisse**: Leere Verzeichnisse werden nicht kopiert. 4. **Sonderzeichen in Dateinamen**: Das Skript sollte mit den meisten Sonderzeichen in Dateinamen umgehen können. Bei Problemen prĂŒfe die Bash-Umgebung. --- ## 🐛 Fehlerbehebung ### Problem: Skript findet keine Verzeichnisse - **Ursache**: Die Verzeichnisse entsprechen nicht dem Format `JJJJ-MM-TT-SS` (z. B. `2026-05-04-10`). - **Lösung**: Stelle sicher, dass die Verzeichnisnamen dem erwarteten Muster entsprechen. ### Problem: Keine Berechtigung zum AusfĂŒhren - **Lösung**: FĂŒhre `chmod +x consolidate_monthly_files_with_progress.sh` aus. ### Problem: Fortschrittsbalken wird nicht angezeigt - **Ursache**: Einige Terminals unterstĂŒtzen `` (Carriage Return) nicht korrekt. - **Lösung**: Teste das Skript in einem anderen Terminal (z. B. `gnome-terminal` oder `xterm`). --- ## 📜 Lizenz Dieses Skript ist **frei verwendbar**. Keine Garantie oder Haftung fĂŒr Datenverlust oder andere Probleme. --- ## 💬 Kontakt Falls du Fragen oder AnpassungswĂŒnsche hast, lass es mich wissen!