我想知道是否有人可以告诉我在 unix 中是否有可用的函数,bash 可以比较文件的所有行。如果它们不同,则应输出 true/false 或 -1,0,1。我知道这些 cmp 函数存在于其他语言中。我一直在查看手册页,但没有成功。如果不可用,有人可以帮我想出替代解决方案吗?
谢谢
最佳答案
有几种方法可以做到这一点:
cmp -s file1 file2
:查看$?
的值。如果两个文件匹配则为零,否则为非零。diff file1 file2 >/dev/null
:diff
命令的某些形式可以采用一个参数,告诉它不要输出任何内容。然而,大多数人没有。毕竟,您使用diff
来查看两个文件之间的差异。同样,如果文件匹配,退出代码(您可以检查$?
的值将为 0,否则为非零。
您可以在 shell if 语句中使用这些命令:
if cmp -s file1 file2
then
echo "The files match"
else
echo "The files are different"
fi
diff
命令是专门为文本文件设计的。 cmp
命令也适用于所有二进制文件。
关于bash - 在 Unix 中比较两个文本文件的比较函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736013/