Selezione di file con estensioni che hanno lo stesso nome di file con un'estensione diversa

1

Ho due cartelle di immagini. In una cartella ci sono .JPGs , ad es.

  • 001.jpg
  • 002.jpg
  • 003.jpg
  • 004.jpg
  • 005.jpg
  • 006.jpg
  • 007.jpg
  • 008.jpg

nell'altra cartella, ci sono .NEF s. Tuttavia alcuni dei .NEF s sono stati cancellati, quindi ci sono per esempio

  • 001.nef
  • 003.nef
  • 004.nef
  • 005.nef
  • 008.nef

I jpg e nefs corrispondono l'uno all'altro: sono la stessa foto scattata allo stesso tempo con gli stessi dati efix (salvati su due schede di memoria separate)

Quello che voglio fare è selezionare i .JPG che corrispondono ai .NEFF rimanenti. Nell'esempio precedente voglio selezionare JPG 1,3,4,5,8 ma non gli altri. In realtà ho circa 400 jpg e 800 nefs.

Ho provato a utilizzare app di confronto di cartelle come VisualDiffer, tuttavia sembrano funzionare solo se stai utilizzando lo stesso nome completo + estensione.

Qualcuno sa come potrebbe essere possibile raggiungere questo risultato nel Finder o usando il terminale? o in alternativa con un'altra app?

Sto usando Mac OSX 10.6.8

Grazie!

    
posta Rich 13.06.2013 - 13:53
fonte

1 risposta

2

Apri il terminale e usa cd per fare in modo che la directory dei file * .nef sia la directory corrente. Supponiamo che tu abbia questa struttura:

mydir / jpegdir mydir / nefdir

Quindi cd in mydir / nefdir

Quindi:

mkdir newdir
for file in *.nef; do 
    root=${$file%.nef}; 
    jpeg=${root}.jpg; 
    mv ../jpegdir/${jpeg} ./newdir/
done

esempio sotto. Nota qui che ho messo "echo" davanti al comando mv. Vuoi ometterlo, ma lo uso spesso quando sto controllando che uno script stia facendo ciò che mi aspetto prima di eseguirlo. Inoltre non dici cosa vuoi fare con i file, ma spostarli in una nuova cartella ti permette di selezionarli e puoi sempre spostarli tutti indietro. Ho anche accorciato i nomi delle mie variabili tmp.

$ ls -R
total 0
drwxrwxr-x  4 tim  staff  136 Jun 13 08:02 .
drwx------  9 tim  staff  306 Jun 13 08:02 ..
drwxrwxr-x  8 tim  staff  272 Jun 13 08:03 jpegdir
drwxrwxr-x  5 tim  staff  170 Jun 13 08:03 nefdir

./jpegdir:
total 0
drwxrwxr-x  8 tim  staff  272 Jun 13 08:03 .
drwxrwxr-x  4 tim  staff  136 Jun 13 08:02 ..
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo1.jpeg
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo2.jpeg
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo3.jpeg
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo4.jpeg
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo5.jpeg
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo6.jpeg

./nefdir:
total 0
drwxrwxr-x  5 tim  staff  170 Jun 13 08:03 .
drwxrwxr-x  4 tim  staff  136 Jun 13 08:02 ..
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo2.nef
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo3.nef
-rw-rw-r--  1 tim  staff    0 Jun 13 08:03 foo5.nef

$ cd nefdir/
$ mkdir newdir/

$ for f in *.nef; do g=${f%.nef}; h=$g.jpeg; echo mv ../jpegdir/$h ./newdir; done
mv ../jpegdir/foo2.jpeg ./newdir
mv ../jpegdir/foo3.jpeg ./newdir
mv ../jpegdir/foo5.jpeg ./newdir
    
risposta data 13.06.2013 - 14:09
fonte

Leggi altre domande sui tag