Ich habe viele Dateien aus einer Datenbank, die in eine neue Datenbank kopiert werden sollen, aber die Dateien dafür sind beschädigt (Sie sind Null-Byte groß und enthalten keine Daten). Anstatt dass die neue Datenbank einen Fehler anzeigt, wenn die Datei gefunden wird, möchte ich, dass eine Textdatei "Diese Datei ist leer" lautet.
Das Erstellen der Platzhalter-Textdatei ist einfach, aber wie kann die Datei für jede der möglicherweise Hunderte von Dateien, die sie ersetzen soll, umbenannt werden?
Die Quelldateien sind nummeriert wie 1234.txt 2345.txt 34455.txt usw
Die Ersatzdateien müssen den gleichen Namen haben, müssen aber alle den exakt gleichen Inhalt (Nachricht) haben, den ich festlege.
Ich dachte, AppleScript könnte einfach meine Aktionen der Dateiauswahl, des Kopierens von Namen, des Löschens, Duplizierens, Verschiebens usw. von Dateien aufzeichnen und wiederholen, aber das funktionierte nicht (AppleScript bemerkte nicht einmal, dass ich die Dateien auswählte).
Ich dachte, ich könnte es auch mit Automator machen, konnte aber überraschenderweise keine Umbenennungsfunktion finden, die den Dateinamen durch Text ersetzen würde, der in die Zwischenablage kopiert wurde, also funktionierte das auch nicht.
Ich weiß, dass Terminal dies im Handumdrehen tun kann, und habe vor etwa einem Jahr an anderer Stelle eine ähnliche Frage gestellt, kann aber jetzt keine Aufzeichnung der Antwort finden.
Ich verwende Mac OS X 10.7.5. Jede Hilfe mit jeder Methode ist willkommen.
Grundsätzlich möchten Sie eine Reihe von Dateien finden, die leer sind (Größe 0 Bytes haben) und dann ihren Inhalt in "Diese Datei ist leer" ändern.
cd to/wherever/the/files/are
find . -type f -size 0 -print | while IFS= read -r line; do
echo "This file is empty" > "$line"
done
Wenn Sie sie stattdessen entfernen möchten, führen Sie sie aus
cd to/wherever/the/files/are
find . -type f -size 0 -delete
grg
Vic
Markhunte
Steve K