【问题标题】:Why does wc count one extra character in my file? [duplicate]为什么 wc 在我的文件中计算一个额外的字符? [复制]
【发布时间】:2016-04-20 12:38:12
【问题描述】:

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

Hello

命令的输出是

1 1 6 sample.txt

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

0 0 0 sample.txt

【问题讨论】:

标签: linux bash wc


【解决方案1】:

您有一个尾随的新行,这是 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

【讨论】:

  • 如果是换行符,wc不会输出2行而不是1行吗?
  • 不,\n 是第一行的最后一个字符。
  • @Patrick 实际上,wc 计算文件包含多少新行。这就是为什么我的第一个示例在第一列中显示 0
  • 有趣的问题。一旦我对 shell 更熟悉了,我会深入研究它,因为我还是个初学者,而且这些东西往往会变得相当压倒性。
  • 您可以使用od 查看文件的确切内容。例如od -c sample.txt.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2020-01-05
  • 2021-02-02
  • 2014-01-08
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多