複数ファイルを比較して、全てに共通した行のみを出力する

下記の3つのファイルの場合

file1

1
2
3
4
5

file2

7
6
5
4
3

file3

1
9
7
5
3

こんなものを出力

$ ./allcomm.sh file1 file2 file3
3
5

ソース
allcomm.sh

#!/bin/sh

PREF=allcomm_tmp_sorted_

# 途中終了時のゴミ掃除
trap "rm -f $PREF*; exit 1" HUP INT QUIT TERM

for filename in "$@"
do
    # ソート済みのファイルをつくる
    sorted="$PREF""$filename"
    sort -u "$filename" > "$sorted"

    # 1週目
    test ! -e tmp && cat "$sorted" > tmp

    # commで比べて共通行をtmpに出力
    comm -12 tmp "$sorted" > _tmp
    mv _tmp tmp
done

rm "$PREF"*
cat tmp 
rm tmp