Estoy clasificando un gran número de ficheros de imágenes archivadas en los que algunos están duplicados, y quiero eliminar los duplicados. Utilizo el siguiente shell script para obtener una lista de duplicados.
fdupes -r -A /Users/yves/Pictures >> "/Users/yves/Desktop/Dupes-new-$(date +%Y-%m-%-d-%Hh%M).txt"
Sin embargo, hay algunos casos en los que el número de ficheros duplicados es superior a 2, como 3 o más, como se muestra a continuación:
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK_*2702.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK_2702 2.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK_2702.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK2702.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK_FF1629 2.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/_NIK_FF1629.NEF
/Volumes/Archives-photos-new/Fichiers-RAW/DSC_1629.NEF
Cuando el número de duplicados es consistentemente exactamente 2, he utilizado un comando awk para recuperar la primera línea de cada grupo: awk '{if(NR%3==1) print $0}' filepath > result
y he creado un archivo "TO-DELETE". Y luego he eliminado los archivos identificados en el archivo mediante el siguiente AppleScript script:
set srcFile to ((path to desktop) as text) & "TO-DELETE.txt"
set lns to paragraphs of (read file srcFile as «class utf8»)
repeat with i from 1 to count lns
if (item i of lns) is not in {missing value, ""} then
set f to POSIX file (item i of lns)
tell application "Finder"
try
move f to trash
on error
display dialog "Error with file" & space & (item i of lns as string)
end try
end tell
end if
end repeat
Pero no veo un camino fácil y fiable para gestionar los duplicados cuyo número es superior a 2. Ahora tengo varios miles de archivos duplicados, y por lo tanto la edición manual no es una opción. ¿Alguna sugerencia y ayuda?