实际 bash 行数

Real bash line count

我正在解析一个临时文件,其中的行要删除,所以我 运行: tr '\n' ' ' < temp > temp2。现在,当我 wc -l temp2 它返回 0 行而不是 1 行时,这对我来说是出乎意料的。

查看手册后,wc -l只计算换行符而不计算行数。它的行为很好,但如果您不知道文件的最后一行是否包含换行符,则可能会出现问题。

是否有任何工具或解决方法可以计算行数,即使它们没有换行符?

UNIX 文本文件 must always have a trailing newline。没有它,许多工具将无法处理最后一行,正如您所看到的那样。我没有寻找可以处理它的工具,而是修复了您文件中的错误。

{ tr '\n' ' ' < temp && echo; } > temp2

awk 救援!

awk 'END{print NR}' file

没有尾随换行符也能正常工作。