我的unix中有2个文件夹,名为folderA,folderB有5个文件
FolderA FolderB
file1 file1
file2 file2
file3 file3
file4 file4
file5 file5
假设两个文件夹中的file1,file2内容相同
我需要输出" 2个目录有2个文件,内容相同,3个文件内容不同"
两个目录中的文件名也是相同的,两个目录中的文件数量相同(没有特殊情况)。 我做了类似的事情
diff -U 0 /FolderA /FolderB | grep -v ^@ | wc -l
我输出为22 ,我认为这是针对所有文件的所有差异。 不知怎的,我需要得到每个文件的差异并写入,如果条件得到计数。我对Unix很新,所以无法搞清楚。
答案 0 :(得分:1)
#!/bin/bash
f1="FolderA"
f2="FolderB"
cd "$f1" || exit 1
for i in file*; do if diff "$i" "../$f2/$i" >/dev/null; then ((same++)); else ((diff++)); fi; done
echo "$same files with same content and $diff files with different content"
输出:
2 files with same content and 3 files with different content
答案 1 :(得分:1)
获取不同的文件
diff -qrs dir1 dir2 | grep differ | wc -l
获取相同的文件
diff -qrs dir1 dir2 | grep identical | wc -l