为什么 wc 在我的文件中计算一个额外的字符?

Why does wc count one extra character in my file?

1.) 我在虚拟机上使用 Debian 8.4,当我 运行 命令 wc sample.txt 到 sample.txt 包含:

Hello

命令的输出是

1 1 6 sample.txt

多余的字符是EOF吗?如果是,那么当我 运行 对一个空文件执行相同的命令时,输出是..

0 0 0 sample.txt

您有一个尾随换行符,这是 wc 报告的内容。

例如,如果我们创建一个文件 printf:

$ printf "hello" > a
$ cat a | hexdump -c
0000000   h   e   l   l   o
0000005
$ wc a
0 1 5 a

但是,如果我们写成 echo 之类的内容,则会附加一个尾随换行符:

$ echo "hello" > a
$ cat a | hexdump -c
0000000   h   e   l   l   o  \n
0000006
$ wc a
1 1 6 a