I don t think you really want a 160-bit inclusive OR, but if you do:
split32 () {
x= s/(........)(........)(........)(........)(........)/
x=$x 0x1 0x2 0x3 0x4 0x5/
sed -e "$x"
}
(sha1sum $1 | split32; sha1sum $2 | split32) | (
read a1 b1 c1 d1 e1 x1
read a2 b2 c2 d2 e2 x2
a=$(($a1 | $a2))
b=$(($b1 | $b2))
c=$(($c1 | $c2))
d=$(($d1 | $d2))
e=$(($e1 | $e2))
printf %08x%08x%08x%08x%08x
$a1 $b1 $c1 $d1 $e1
printf + %08x%08x%08x%08x%08x
$a2 $b2 $c2 $d2 $e2
printf = %08x%08x%08x%08x%08x
$a $b $c $d $e
)
$ bash bigOr.sh fun.tar fun.tgz
e515d3813b17c36b9a7d29f7aea3e79e264449b7
+ 4f201513105c301944d0a0ba5864d9f07544ca76
= ef35d7933b5ff37bdefda9fffee7fffe7744cbf7