Created
August 16, 2019 23:53
-
-
Save aramosf/47c3b42f5f9e0deedb287096ffff8afd to your computer and use it in GitHub Desktop.
find duplicate images based on exif information and ask to delete (jpg, heic)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# locate the same images (jpeg and heic) based on some EXIF information | |
# and request the file to be deleted | |
rm all.txt | |
rm duplicates.txt | |
IFS=" | |
" | |
for i in *[JjpPGg]; do | |
md5=`exiftool -CreateDate -DateTimeOriginal -Model -ModifyDate -GPSLatitudeRef -GPSLatitude -GPSLongitude -GPSLongitudeRef -GPSAltitude -GPSAltitudeRef -GPSSpeed -GPSDateStamp -ImageSize -Megapixels -DateTimeOriginal -RuntimeValue $i|md5sum -`; | |
echo "$md5:$i"; | |
done >>all.txt | |
for i in *[HhEeiIcC]; do | |
md5=`exiftool -CreateDate -DateTimeOriginal -Model -ModifyDate -GPSLatitudeRef -GPSLatitude -GPSLongitude -GPSLongitudeRef -GPSAltitude -GPSAltitudeRef -GPSSpeed -GPSDateStamp -ImageSize -Megapixels -DateTimeOriginal -RuntimeValue $i|md5sum -`; | |
echo "$md5:$i"; | |
done >>all.txt | |
sort -k1,1 -k2n all.txt > duplicates.txt | |
for md5 in `cat duplicates.txt | awk '{print $1}' | uniq -d`; do | |
f=`grep $md5 duplicates.txt|awk -F: '{print $2}'`; | |
files=() | |
i=0 | |
for file in $f; do | |
files+=($file) | |
echo -n "[$i]: " | |
ls -l $file | |
i=$(( $i + 1 )) | |
done | |
for i in "${!files[@]}"; do | |
printf "%s\t%s\n" "$i" "${files[$i]}" | |
done | |
read -p "Delete?: " n | |
rm ${files[$n]} | |
echo "Deleted ${files[$n]}" | |
unset files | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment