forreal flag on get_dups.sh to move files.

main
Robert 8 months ago
parent 6475ca2069
commit aa1566eb67
  1. 0
      dups/0.jpg
  2. 0
      dups/1.jpg
  3. 33
      get_dups.sh

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 201 KiB

@ -3,15 +3,22 @@
# License: MIT
source myenv/bin/activate
# Remove trailing slash
path="${1%/}"
# Check if the first argument is a directory
if [ ! -d "$1" ]; then
echo "Error: '$1' is not a directory."
if [ ! -d "$path" ]; then
echo "Error: '$path' is not a directory."
exit 1
fi
if [ "$2" = "forreal" ]; then
mkdir "$path/dups"
fi
# Get list of images
shopt -s nullglob
pushd "$1" || exit 1
pushd "$path" || exit 1
images=(*.jpg *.png)
popd || exit 1
@ -30,33 +37,39 @@ for ((i = 0; i < ${#images[@]}; i++)); do
inner_image="${images[$j]}"
echo -e "\nCompairing files: $outer_image TO $inner_image"
python3 dedup.py "$1/$outer_image" "$1/$inner_image" "$2"
python3 dedup.py "$path/$outer_image" "$path/$inner_image" "$2"
exit_code=$?
if [ $exit_code -eq 1 ]; then
echo "$1/$outer_image # $inner_image" >> dups.txt
echo "$path/$outer_image # $inner_image" >> dups.txt
if [ "$2" = "forreal" ]; then
mv "$path/$outer_image" "$path/dups"
fi
break # No need to check more once found duplicate
fi
if [ $exit_code -eq 2 ]; then
echo "$1/$outer_image # $inner_image" >> alike.txt
echo "$path/$outer_image # $inner_image" >> alike.txt
break # No need to check more once found close match to duplicate
fi
if [ $exit_code -eq 4 ]; then
break # Skip Invaild inner Image
fi
if [ $exit_code -eq 5 ]; then
echo "$1/$outer_image # $inner_image" >> sameGPS.txt
echo "$path/$outer_image # $inner_image" >> sameGPS.txt
break # No need to check more once found matching GPS image
fi
if [ $exit_code -eq 6 ]; then
echo "$1/$outer_image # $inner_image" >> sameGPSmile.txt
echo "$path/$outer_image # $inner_image" >> sameGPSmile.txt
break # No need to check more once found matching GPS image
fi
if [ $exit_code -eq 8 ]; then
echo "$1/$outer_image" >> invalid.txt
echo "$path/$outer_image" >> invalid.txt
if [ "$2" = "forreal" ]; then
echo "To remove bad image run: rm $path/$outer_image"
fi
break # No need to check more once found bad image
fi
if [ $exit_code -eq 9 ]; then
echo "$1/$outer_image" >> size.txt
echo "$path/$outer_image" >> size.txt
break # No need to check more once found image too Small or Large
fi

Loading…
Cancel
Save