不能在单行文件上使用 Linux wc

Can't use Linux wc on one-line file

我有一个单行文件,行尾没有换行符。当我 运行 以下内容时:

diff oneline-file.txt any-file.txt | wc -c

我得到:

Warning: missing newline character in oneline-file.txt

为什么这是一个错误?我该如何解决?我可以先这样做:

echo "\n" >> oneline-file.txt

我宁愿做一些不改变文件的事情。谢谢

您可以将 echo 的结果通过管道传输到 diff,将文件名作为 diff 的参数替换为 -(告诉它获取该输入来自标准输入)。

您可以使用进程替换来回显文件后的换行符:

diff <(cat oneline-file.txt; echo "") any-file.txt | wc -c

感谢 Barmar。这引导我朝着正确的方向前进。这是我使用的:

diff <(sed 's/$/\n/g' oneline-file.txt) <(cat any-file.txt) | wc -c