wc -m in unix 增加一个字符

wc -m in unix adds one character

计算一行有 4 个字符且没有换行符:

ACTG

wc -m 给我 5。有了 echo,我可以解决这个问题所以

echo -n 'ACTG' | wc -m

但是如果 ACTG 在没有换行符的文本文件中,我得到 5。为什么会这样?

$ ls -l file

-rw-rw-r-- 1 user user 5 Feb 11 15:27 file
$ hexdump -C file

00000000  41 42 43 44 0a                                    |ABCD.|
00000005

正如 hexdump 向您展示的那样,无论您使用的是什么编辑器,都会在您保存文件时在该行的末尾添加一个“\n”或 0x0A(换行符)字符,即使您没有编写一个明确地。

参见:http://www.asciitable.com/