计算shell脚本中2个不同文件夹中具有相同内容的文件数

时间:2015-12-13 10:43:07

标签: bash shell unix

我的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很新,所以无法搞清楚。

2 个答案:

答案 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