README.md hinzugefügt

This commit is contained in:
alf
2026-08-20 08:52:01 +00:00
parent 3f65c22e69
commit e0aa5b9804

140
README.md Normal file
View File

@ -0,0 +1,140 @@
# 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!