Ich bearbeite RAW-Fotos in Photoshop mit Adobe Camera Raw. Die Bearbeitungen funktionieren folgendermaßen: Jedes Mal, wenn ich an einem Bild arbeite, erstellt Photoshop eine Textdatei mit demselben Namen wie das Bild, an dem die Bearbeitungen vorgenommen wurden. Manchmal jedoch, wenn ich ein Bild lösche oder es in einem Photomerge verwende, bleibt die XML-Datei zurück. Somit habe ich jetzt einen Ordner mit ~1100 RAW-Bildern (.NEF), ~1300 Textdateien (.xmp) und ein paar Photoshop-Dateien (.psd, .psb).
Ich möchte diesen Ordner entweder mit AppleScript oder einem Bash-Befehl parsen und die .xmp-Dateien markieren oder löschen, die keine begleitende RAW-Datei haben. Logischerweise wäre der Code: Suchen Sie für jede .xmp-Datei nach einer .NEF-Datei mit demselben Namen. Wenn .NEF nicht vorhanden ist, löschen oder markieren Sie die .xmp-Datei. Wenn .NEF vorhanden ist, tun Sie nichts.
Ich bin mit AppleScript nicht vertraut, und obwohl ich mit ffmpeg, diskutil und grundlegenden cd/ls- und rsync-Befehlen im Terminal vertraut bin, habe ich so etwas noch nie versucht und weiß nicht, wo ich anfangen soll.
Also, ich hatte gehofft, jemand hier könnte:
Wechseln Sie im Terminal in das Verzeichnis, z. B. cd /path/to/files
, zum Speicherort der Zieldateien, und verwenden Sie dann den folgenden Befehl, um alle .xmp
Dateien zu löschen, für die es keine entsprechende .NEF
Datei gibt:
for f in *.xmp; do [[ ! -f ${f%.*}.NEF ]] && rm "$f"; done
"${f%.*}.xmp"
dasselbe "$f"
?${f%.*}.NEF
in "${f%.*}.xmp"
. Ich habe es jetzt gekürzt.
kein Hang