Algo como isso deve fazer o que você quer:
#! /bin/sh
for f in ./file*; do
sort -u "$f"
done | \
sort | \
uniq -c | \
sort -rn | \
head -40
O ponto do for
é garantir que cada linha seja contada apenas uma vez por arquivo. O ponto do restante do pipeline é contar as ocorrências.