Skip to content

Instantly share code, notes, and snippets.

@ailtonbsj
Created May 10, 2021 06:31
Show Gist options
  • Save ailtonbsj/666dd3471e915f47ce09721335ed6b6d to your computer and use it in GitHub Desktop.
Save ailtonbsj/666dd3471e915f47ce09721335ed6b6d to your computer and use it in GitHub Desktop.
Difference between two files in percentage
#!/bin/bash
# DESCRIPTION: Difference between two files in percentage
# USAGE:
# ./diffpercent file1 file2
cat $1 | base64 -w 0 > /tmp/1.64
cat $2 | base64 -w 0 > /tmp/2.64
sed 's/./\0\n/g' /tmp/1.64 > /tmp/3.64
sed 's/./\0\n/g' /tmp/2.64 > /tmp/4.64
echo "It can take a long time maybe..."
diff /tmp/3.64 /tmp/4.64 > /tmp/5.64
echo "Wait some more time..."
cat /tmp/5.64 | grep ">" | cut -c 3- | tr -d '\n' > /tmp/6.64
file1="$(cat /tmp/1.64 | base64 -d | wc -c)"
file2="$(cat /tmp/2.64 | base64 -d | wc -c)"
diffs="$(cat /tmp/6.64 | base64 -d 2>/dev/null | wc -c)"
echo "$file1 bytes file $1"
echo "$file2 bytes file $2"
echo "$diffs bytes of difference"
if (( file1 > file2 )); then
bigger=$file1
else
bigger=$file2
fi
echo "$(echo "scale=4 ; ($diffs / $bigger) * 100" | bc)% of difference"
echo "$(echo "scale=4 ; (($bigger - $diffs) / $bigger) * 100" | bc)% similarity"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment