反向差异功能

时间:2018-01-17 07:54:07

标签: linux batch-file

我有两个文件a.txt和b.txt 我想报告输出ONLY文件是否相同?

这样:

如果文件相同 - >报告

如果文件不同 - >不报告任何事情

我知道在diff中有一个-s选项可以报告文件是否相同但是当文件不同时它也会报告(并且我想在文件不同时报告)

哦,还有一个人认为我无法再安装任何其他内容

2 个答案:

答案 0 :(得分:2)

您标记了问题linuxbatch-file,这是相互矛盾的。这是一个批处理文件解决方案:

fc file1 file2 >nul && (echo same) || (echo different)

"不报告文件何时不同",只需跳过|| (echo different)部分

答案 1 :(得分:1)

如果您有diff可用,您也可以使用grep。因此,通过diff管道grep输出以检查您获得的结果,并采取相应措施。 diff -qs将输出"文件a.txt和b.txt相同"或"文件a.txt和b.txt不同"。因此,您可以检查是否存在"相同的"在输出中找到你的案例。

if diff -qs a.txt b.txt | grep -q identical; then
   echo "Files are identical.  Reporting"
else
   # Do nothing
fi

或作为oneliner:

(diff -qs a.txt b.txt | grep -q identical) && echo "Files are identical."