Jump to content

Mit welchem Verfahren, Programm oder Script kann ich Dateien wie folgt sortieren?


Empfohlene Beiträge

Werbung (verschwindet nach Registrierung)

Hallo,

 
ich habe sehr viele "überflüssige" Raw-Dateien, die ich dummerweise in der Vergangenheit nicht rechtzeitig gelöscht habe, so dass ich mittlerweile einen ganzen Berg davon habe - d.h. Gigabytes ohne Ende.
 
Ich könnte komfortabel und effektiv aufräumen, wenn mir irgendein Programm oder Script erlauben würde, folgendes zu erreichen:
 
Dateien im Ordner X vorher:
 
DSC00067.ARW
DSC00067exportiert.jpg
DSC00921.ARW
DSC00921exportiert.jpg
DSC01512.ARW
DSC01701.ARW
DSC01702.ARW
DSC02938.ARW
DSC02938exportiert.jpg
 
 
Dateien im Ordner X nachher:
 
DSC00067.ARW
DSC00067exportiert.jpg
DSC00921.ARW
DSC00921exportiert.jpg
DSC02938.ARW
DSC02938exportiert.jpg
 
 
Weiß jemand, wie das AUTOMATISIERT machbar ist (auf einem Mac)? Ich meine natürlich nicht "von Hand" per klick-klick-klick. Dass das manuell geht, ist klar, es geht hier aber leider um Tausende Dateien.
 
Vielen Dank im Voraus!
 
Link zum Beitrag
Auf anderen Seiten teilen

hi,

 

relativ simpel sofern am MAC nichts künstlich beschnitten wurde:

 

shell script erstellen "deleteoldarw.sh" mit inhalt (zw. --- snip --- ):

 

--- snip ---

 

#!/bin/bash

 

while IFS= read -d $'\0' -r file ; do
    if [ ! -f "${file%%.ARW}exportiert.jpg" ]; then
        printf 'rm "%s"\n' "$file"
        #rm "$file"
    fi
done < <(find . -name "*.ARW" -print0)
 

--- snip ---

 

dann im terminal:

bash ./deleteoldarw.sh

 

das sollte dir nur sowas ausgeben wie:

 

rm "altes1.ARW"

rm "altes2.ARW"

 

wenn dir das richtig erscheint, kannst du im script die zeile  #rm "$file"  auf rm "$file" (also das #) entfernen, dann wird der rm befehle auch ausgeführt.

 

viel erfolg.

bearbeitet von da_habakuk
Link zum Beitrag
Auf anderen Seiten teilen

Ich würde das Bash Script dahingehend modifizieren dass die zu löschenden Dateien per mv in einen anderen Ordner verschoben werden. Das macht die Kontrolle per Finder einfacher und man kann sie über die Mülltonne löschen.

 

guter einwand:

 

#!/bin/bash

 

if [ ! -d DELETEME ]; then

    mkdir DELETEME

fi

 

while IFS= read -d $'\0' -r file ; do

  if [ ! -f "${file%%.ARW}exportiert.jpg" ]; then

      printf 'DELETEME: "%s"\n' "$file"

      mv "$file" DELETEME/

  fi

done < <(find . -name "*.ARW" -print0)

 

 

;)

bearbeitet von da_habakuk
Link zum Beitrag
Auf anderen Seiten teilen

guter einwand:

 

#!/bin/bash

 

if [ ! -d DELETEME ]; then

    mkdir DELETEME

fi

 

while IFS= read -d $'\0' -r file ; do

  if [ ! -f "${file%%.ARW}exportiert.jpg" ]; then

      printf 'DELETEME: "%s"\n' "$file"

      mv "$file" DELETEME/

  fi

done < <(find . -name "*.ARW" -print0)

 

 

;)

 

 

Funktioniert super !! Vielen Dank !

 

Eine kleine Erweiterung würde das Ganze perfekt machen. Ich hab weiter oben in meiner Liste nämlich einen Dateityp vergessen, der beim Arbeiten mit DXO-Optics Pro noch entsteht. 

 

Daher hier die Listen noch mal aktualisiert:

 

 

Dateien im Ordner X vorher:

 
DSC00067.ARW
DSC00067.dop
DSC00067exportiert.jpg
DSC00921.ARW
DSC00921.dop
DSC00921exportiert.jpg
DSC01512.ARW
DSC01701.ARW
DSC01701.dop
DSC01702.ARW
DSC02938.ARW
DSC02938.dop
DSC02938exportiert.jpg
 
 
Dateien im Ordner X nachher:
 
DSC00067.ARW
DSC00067.dop
DSC00067exportiert.jpg
DSC00921.ARW
DSC00921.dop
DSC00921exportiert.jpg
DSC02938.ARW
DSC02938.dop
DSC02938exportiert.jpg
 
Das Besondere ist, dass es auch Fälle mit ARW-Version und dop-Version gibt aber ohne jpg-Version. In diesen Fällen soll SOWOHL die ARW-Datei ALSAUCH die dop-Datei in den DELETEME-Ordner verschoben werden.
 
Wenn es dagegen das Dreiergrüppchen ARW, dop und jpeg gibt, dann sollen alle drei erhalten bleiben.
bearbeitet von cosmovisione
Link zum Beitrag
Auf anderen Seiten teilen

so - sollte es ein .dop auch noch geben, wird sie mitverschoben.

 

 

#!/bin/bash

if [ ! -d DELETEME ]; then
  mkdir DELETEME
fi

while IFS= read -d $'\0' -r file ; do
  if [ ! -f "${file%%.ARW}exportiert.jpg" ]; then
      printf 'DELETEME: "%s"\n' "$file"
      mv "$file" DELETEME/
      if [ -f "${file%%ARW}dop" ]; then
          printf 'DELETEME %s\n' "${file%%ARW}dop"
          mv "${file%%ARW}dop" DELETEME/
      fi
  fi
done < <(find . -name "*.ARW" -print0)

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...