我从wc -l
命令中得到了错误的结果。看了半天:(查了一下发现问题的核心,下面是仿真:
$ echo "line with end" > file
$ echo -n "line without end" >>file
$ wc -l file
1 file
这里有两行,但缺少最后一个“\n”。有什么简单的解决办法吗?
因为该wc
行是以“\n”字符结尾的。解决方案之一是 grep 行。grep 不寻找结尾的 NL。
例如
$ grep -c . file #count the occurrence of any character
2
以上不会计算空行。如果你想要它们,请使用
$ grep -c '^' file #count the beginnings of the lines
2
从手册页wc
-l, --lines
print the newline counts
表单手册页echo
-n do not output the trailing newline
所以你有1
newline
你的文件,因此wc -l
显示1
.
您可以使用以下awk
命令来计算行数
awk 'END{print NR}' file