使用diff函数创建shell脚本以比较多个文件

时间:2016-03-21 21:30:39

标签: bash shell scripting

我有五个不同的文件,所有文件都在不同的目录中,我想检查匹配的文件,并找出独特的文件。

我不知道该怎么办呢。

2 个答案:

答案 0 :(得分:0)

您可以使用cksum ou md5sum来检测相同的文件:

 find . -type f | while read f; do md5sum "$f"; done > tmp.txt

 cat  tmp.txt | cut -d" " -f1 | while read c
 do  n=`grep $c tmp.txt | wc -l`
 if [ "$n" != "1" ]; then 
    grep $c tmp.txt
 fi
 done | sort -u

答案 1 :(得分:0)

您可以查看

的输出
chksum "path1/file1" "path2/f2" "p3/f3" "p4/f4" "p5/f5" | sort

您还可以使用

创建一个循环遍历文件的脚本
files=("path1/file1" "path2/f2" "p3/f3" "p4/f4" "p5/f5")
for i in {0..4}; do
    ((j=$i+1))
    while [ $j -le 4 ]; do
       diff "${files[i]}" "${files[j]}" >/dev/null
       if [ $? -eq 0 ]; then
           echo "${files[i]} and ${files[j]} are the same."
       else
           echo "${files[i]} and ${files[j]} are different."
       fi
       ((j++))
    done
done