【发布时间】:2012-03-28 05:16:16
【问题描述】:
我有以下文件:
~$ od file.txt
0000000 000012
0000001
而且我希望能够在 bash 脚本中确保文件具有这些内容。 我想避免使用 perl,并想使用标准的 unix 工具,包括 od/sed/awk/tr 等。
你能推荐一个漂亮干净的方法吗?
【问题讨论】:
我有以下文件:
~$ od file.txt
0000000 000012
0000001
而且我希望能够在 bash 脚本中确保文件具有这些内容。 我想避免使用 perl,并想使用标准的 unix 工具,包括 od/sed/awk/tr 等。
你能推荐一个漂亮干净的方法吗?
【问题讨论】:
使用cmp -s逐字节比较两个文件,什么都不输出,只设置退出状态。
【讨论】:
如果你知道它们相似,
diff <(xxd file1.txt) <(xxd file2.txt)
是穷人的十六进制比较。
【讨论】:
如果您处理小文件并希望确保文件内容等于某些预定义的非文本值,并且您不想将文件与某些模板进行比较,您可以使用以下内容:
if [ "`hexdump -e '"%02x"' foo`" = 'deadd00d' ]; then
# Right file content.
else
# File differs.
fi
当然,您可能希望限制hexdump 的输出以避免输入文件过大的问题。
【讨论】: