bash - 在 Unix 中比较两个文本文件的比较函数

标签 bash unix cmp

我想知道是否有人可以告诉我在 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/

相关文章:

bash - 从 shell (bash) 脚本执行命令时在用户提示符中插入文本?

c -/proc/modified 中的 dir 的日期什么时候改变?

assembly - 使用 cmpq 和 je 时的无限循环

linux - 比较二进制文件并仅打印匹配行的偏移量

python - 了解集合的 python 对象成员资格

bash - 连接行,对记录数取模

bash - 采购我自己的柔荑花序工作区后,rosrun 无法工作

bash - bash 脚本中的换行符

linux - 如何建立这个项目?

c - 什么是文件描述符的 "exception"?