So ersetzen Sie alle Finder-Dateien durch jeweils eine Platzhalterdatei

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.

Alle Ihre vorherigen Fragen und ihre nachfolgenden Antworten finden Sie, indem Sie auf Ihren Avatar in der oberen Leiste klicken .
Warum sortieren Sie die Dateien im Finder nicht einfach nach Größe und verschieben sie in ein anderes Verzeichnis oder löschen sie?
Sie können dies entweder in Applescript, Shell oder Automator tun. Aber @Patrix hat ein gutes Beispiel gegeben, das den Text in die eigentlichen Dateien schreibt. Aber wenn Sie es aus der Auswahl im Finder (sicherer) machen wollen, dann fragen Sie und ich bin sicher, sein Beispiel kann angepasst werden.
Mit Finder ist das Identifizieren und Platzieren der Dateien in einem Ordner zur Verarbeitung einfach. Einige Dateien sind aus verschiedenen Gründen beschädigt und müssen durch eine Platzhalter-Textdatei ersetzt werden, die angibt, warum die Originaldatei entfernt wurde. Ohne den Platzhalter verliert die neue Datenbank den Verweis auf die Datei und wenn sie versucht, sie anzuzeigen, kann es einfach zu einem Fehler kommen, für den ich verantwortlich gemacht werden kann. Wobei ich Hilfe brauche, ist, jede der Wonky-Dateien durch dieselbe Textdatei mit dem Namen "placeholder.txt" (zum Beispiel) zu ersetzen. Der Name der ursprünglichen Wonky-Datei muss jedoch beibehalten werden.

Antworten (1)

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
Dies funktioniert nur mit Dateien, die sehr einfache Namen haben (keine Leerzeichen, keine Zeilenumbrüche usw.) - angesichts der spezifischen Frage kein Problem, aber andere Leser sollten sich dessen bewusst sein.
Ups, stimmt. behoben, danke für die Erinnerung :-)