我在两个目录dir1
和dir2
中有数千个平面文件。现在,我想在另外两个不同的目录success
(如果diff完全相同)和failure
(如果diff不相同)中生成一对相同文件名的差异报告。
例如:
如果dir1
有文件:file1, file2
如果dir2
有文件:file2, file3
然后我只考虑dir1/file2
和dir2/file2
的差异。 file1
和file3
将被忽略,因为它们没有各自的对。
如何使用shell脚本执行此操作?是否可以使用系统命令?
答案 0 :(得分:1)
您没有在“成功”中指定要查看的报告类型 和“失败”目录,所以不包括在解决方案中。另外,使用 “cmp”代替“diff”,因为你没有完全指定你需要“diff” 输出和什么样的。
for p1 in dir1/*; do
f=`basename "$p1"`
p2="dir2/$f"
if [ -e "$p2" ]; then
if cmp --quiet "$p1" "$p2"; then
echo "$f: success"
else
echo "$f: failure"
fi
fi
done
用您的报告生成替换“echo”。将“cmp”替换为“diff”和 适当的选择,如有必要。