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

8 unix wc

请看一下这个例子:

$ cat < demo
man
car$ 
$ 
$ od -x < demo 
0000000 616d 0a6e 6163 0072
0000007
$ 
$ wc < demo 
1 2 7
Run Code Online (Sandbox Code Playgroud)

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

Ark*_*zyk 9

或者您认为为了在Unix中符合条件,您必须使用换行符终止?

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

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