wc -l 未返回正确的值

wc -l 未返回正确的值

我有一个 .txt 文件,其中有 10781 行。当我运行wc -l该文件时,我得到的返回值为 10780。

如果我在 .txt 末尾添加一个空行,我会得到正确的结果 10781。有人能解释一下到底wc -l是什么吗?

答案1

可能你的最后一行没有换行符。

看看这个:

$ printf bla > file
$ wc -l file
0 file

$ 人 1p 厕所

-l 将每个输入文件中的换行数写入标准输出。

在 Unix 上,在文本文件末尾添加换行符是一种很好的风格。如果您无法修复文件,您可以使用这些解决方法来始终计算最后“行”: https://stackoverflow.com/questions/28038633/wc-l-is-not-counting-last-of-the-file-if-it-does-not-have-end-of-line-character

相关内容