#!/bin/bash
# Delete all duplicates in list of files supplied as arguments,
# based on MD5 hash. Retains first copy of each file in
# alphanumerically sorted list of the input file names/paths.
#  Example: rmdup.sh *.tar.bz2
# The Free Thinker, 2022.

oldhash=
OLDIFS="$IFS"
IFS=$'\n'
for line in `md5sum $@ | sort -k 1,1 | uniq -D -w 32`
do
hash=${line:0:32}
if [ "$hash" = "$oldhash" ]
 then
  file="${line:34}"
  echo Deleting: "$file"
  rm "$file"
fi
oldhash=$hash
done
IFS="$OLDIFS"