wc -l给出了错误的结果

时间:2013-05-14 01:30:23

标签: bash wc

我从wc -l命令得到了错误的结果。经过很长时间:(检查发现问题的核心,这里是模拟:

$ echo "line with end" > file
$ echo -n "line without end" >>file
$ wc -l file
       1 file

这里有两行,但缺少最后一行“\ n”。任何简单的解决方案?

2 个答案:

答案 0 :(得分:17)

对于wc行,以“\ n”字符结尾。其中一个解决方案就是利用线条。 grep没有寻找结束的NL。

e.g。

$ grep -c . file        #count the occurrence of any character
2

以上不会计算空行。如果需要,请使用

$ grep -c '^' file      #count the beginnings of the lines
2

答案 1 :(得分:13)

来自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