Dateien Sortieren/Löschen

ordell

ordell

Aktives Mitglied
Thread Starter
Dabei seit
20.01.2005
Beiträge
324
Reaktionspunkte
12
Hallo Zusammen,
ich würde Euch gerne um Hilfestellung für folgende Aufgabe bitten:
Ich fotografiere im JPG und RAW Format. Die beiden Files übertrage ich von der Karte der Kamera auf meinen iMac. Sowohl RAW als auch JPG tragen den gleichen Namen, lediglich eine unterschiedliche Endung.
Die JPGs betrachte ich mittels Vorschau.app, und lösche die schlechten auch gleich. Somit bleiben mehr JPGs als RAWs übrig.
Wie kann ich es anstellen, dass alle RAWs zu denen es kein passendes JPG (anhand Dateinnamen vor dem Suffix) vorhanden ist, gelöscht werden? Oder andersherum wie kann ich die RAWs behalten zu denen ein passendes JPG vorhanden ist?

Beispiel:
IMG0001.jpg
IMG0001.raw
IMG0002.raw
IMG0003.raw
IMG0004.jpg
IMG0004.raw
Wie wird IMG0002+3.raw schnell und einfach löschbar?

Danke für Eure Hilfe.
Rainer
 
Ich würde mir dazu ein kleines Shellscript anlegen. Bspw. so:

Bash:
#!/bin/bash
find . -maxdepth 1 -type f -name '*.raw' | while read -r file; do
  if [ ! -f "${file%.*}.jpg" ]; then
    mkdir -p "_raw-only"
    mv "${file}" "_raw-only/"
  fi
done

Im entsprechenden Ordner ausgeführt, schiebt es alle RAW-Dateien ohne JPG Version in einen extra Ordner.

Zeile 2 findet alle RAW-Dateien, Zeile 3 prüft ob es zum gleich Dateinamen eine JPG-Datei gibt, Zeile 4 legt das Verzeichnis _raw-only an und Zeile 5 schiebt die alleinige RAW-Datei in das Verzeichnis.
 
  • Gefällt mir
Reaktionen: ruerueka
Also ich muss hier mal kurz intervenieren :) Nicht das das falsch wäre.... aber: Wo bekommt man z.B. dieses MacOS Wissen anschaulich erklärt? Ich staune immer wieder, auch in anderen Beiträgen, was alles geht. Ich hab früher immer ein MS-DOS 6.22 Buch mit mir rum geschleppt... aber ich wüsste echt gern was über den Apple Syntax. Vielleicht eine Buch Idee dazu?
 
Hm ... das ist keine Apple Syntax in dem Sinne, sondern allgemeine Shellscripte. Aber in der Regel ein Thema, womit nicht jeder zu tun hat. Diese ist mittlerweile mehr oder weniger betriebssystemübergreifend im Terminal/Shell/Konsole verfügbar.

 
Cool, danke... ich lern das "mal eben". Erstes Skript ist schon fertig.
 

Anhänge

  • Bildschirmfoto 2021-01-11 um 16.56.55.png
    Bildschirmfoto 2021-01-11 um 16.56.55.png
    35,6 KB · Aufrufe: 74
Danke Dir, Tigion, aber ich glaube da bin ich raus. Wie "Helene Fischer" schrieb, brauchts hier tiefere Kenntnisse, die über meine Anwenderkenntnisse hinausgehen. Hatte gehofft es gäbe eine built-in Lösung z.B. im Finder... Hab mit dem Script mal rumgespielt und es versucht, bekomme aber nur Fehlermeldungen die mir noch mehr ? verschaffen... dennoch danke für Deine Hilfe
 
Okay ... aber falls du es trotzdem noch einmal probieren willst:

  1. Lege dir eine Textdatei "MyScript.sh" an und kopiere den Inhalt rein
  2. Speicher die Datei in den Ordner, in dem die Bilder liegen
  3. Öffne die Terminal.app
  4. Gebe cd gefolgt von einem Leerzeichen ein
  5. Ziehe den Ordner (in dem die Bilder liegen) auf das Terminal
  6. jetzt müsste hier cd der Pfad zu deinem stehen
  7. drücke Enter und jetzt befindest du dich im Terminal in dem Ordner
  8. führe den Befehl chmod 700 MyScript.sh im Terminal aus. Dieser erlaubt es dem Script ausgeführt zu werden.
  9. rufe jetzt im Terminal ./MySscript.sh auf
  10. jetzt müsste es die alleinigen RAWs in einen neuen Ordner verschoben haben
 
  • Gefällt mir
Reaktionen: ruerueka
Top danke Dir, ich probiere das später mal aus!
 
Liebe MU's, leider bin ich nicht wirklich fit im Terminal, wenngleich tigion das sehr gut beschrieben hat. Kennt sich hier jemand mit dem Automator aus? Kann man das dort auch "programmieren"? Danke für Eure Unterstützung schon mal vorab.
 
Habe mir den Automator und das Einbinden eines Shell Scriptes mal angeschaut. Neu für mich war das Übergeben der Eingabe als Argument und ein zusätzliche cd "$1" um in den übergebenen Ordner zu wechseln.

1. Lege einen neuen Workflow als Schnellaktion wie folgt an und speichere ihn unter einem Namen:
Bildschirmfoto 2021-01-13 um 16.17.37.png

Variante für nur einen markierten Ordner:
Bash:
cd "$1"

find . -maxdepth 1 -type f -name '*.raw' | while read -r file; do
  if [ ! -f "${file%.*}.jpg" ]; then
    mkdir -p "_raw-only"
    mv "${file}" "_raw-only/"
  fi
done

Variante für mehrere markierte Ordner:
Bash:
for folder in "$@"; do
  cd "$folder"

  find . -maxdepth 1 -type f -name '*.raw' | while read -r file; do
    if [ ! -f "${file%.*}.jpg" ]; then
      mkdir -p "_raw-only"
      mv "${file}" "_raw-only/"
    fi
  done
done

Den Dateityp *.raw entsprechend mit *.dng oder so an das passende RAW-Format anpassen.

2. Im Finder jetzt auf den Ordner mit den RAWs und JPGs per Rechtsklick die Schnellaktionen auswählen und hier den Namen des eben angelegten Workflows.

Der Workflow wird unter deinem Benutzer im Library/Services/ Verzeichnis gespeichert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ordell und Snyder
Mega gut!!!!! Das funktioniert perfekt! Ich danke Dir vielmals. Du hast mir wirklich sehr geholfen.
 
Zurück
Oben Unten