我有一个文本文件,它的内容是:
i k k
Run Code Online (Sandbox Code Playgroud)
当我wc -m
用来计算这个文件上的字符数时,结果是7。
问题 1:但是为什么我得到 7,假设它计算“行尾”字符,我不应该得到“ 6 ”吗?
问题 2:具体是如何wc -m
工作的?
问题 3:当我使用wc -c
(计算字节数)时,结果与 相同wc -m
,那么有两个不同的选项有什么意义呢?他们做的完全一样,不是吗?如果不是,有什么区别以及如何wc -c
运作?
Zan*_*nna 36
您确实应该在那里只有 6 个字符。尝试跑步
cat -A filename
Run Code Online (Sandbox Code Playgroud)
查看文件的非打印字符。你必须有一些额外的东西。如果我制作一个像你一样的文件,我明白了
i k k$
Run Code Online (Sandbox Code Playgroud)
你放空格了吗?这将使 7:i k k $
或者它有一个换行符:
i k k$
$
Run Code Online (Sandbox Code Playgroud)
这也是 7
正如你所说
wc -m
Run Code Online (Sandbox Code Playgroud)
计数字符和
wc -c
Run Code Online (Sandbox Code Playgroud)
计数字节。如果您的所有字符都是 ASCII 字符集的一部分,那么每个字符将只有 1 个字节,因此您将从两个命令中获得相同的计数。
尝试使用非 ASCII 字符的文件:
$ echo ? > testfile
$ wc -m testfile
2 testfile
$ wc -c testfile
3 testfile
Run Code Online (Sandbox Code Playgroud)
啊哈!现在字节多于字符。