为什么“wc”命令说我文件中只有一行,而实际上有两行呢?

时间:2016-10-03 11:27:30

标签: unix wc

请看一下这个例子:

$ cat < demo
man
car$ 
$ 
$ od -x < demo 
0000000 616d 0a6e 6163 0072
0000007
$ 
$ wc < demo 
1 2 7

正如你所看到的,我有3个字符(man:6d 61 6e),然后是换行符(\n:0a),然后是另外三个字符(car: 63 61 75)以NUL字符(00)终止。显然,该文件中有两行,但wc命令报告该文件只有一行。是什么赋予了?或者你认为为了在Unix中符合条件,你必须用换行符终止? NUL不算数?

2 个答案:

答案 0 :(得分:5)

  

或者您认为为了在Unix中符合条件,您必须这样做   以换行符结束?

实际上,是的 - 甚至POSIX说:

  

wc实用程序应读取一个或多个输入文件,默认情况下,   写下每个中包含的换行符,单词和字节的数量   输入文件到标准输出。

答案 1 :(得分:0)

更好的使用 awk '{ print }' demo| wc -l