我无法弄清楚这个命令的作用。它在我的终端中生成 3 个数字,但没有解释这些数字是什么。我了解ls -l以日志列表格式列出所有文件并且wc是字数统计,但这些数字似乎与任何内容都不匹配。
有什么帮助吗?
ter*_*don 11
每当您不理解命令时,请阅读其手册。在这种情况下,man wc将向您展示:
DESCRIPTION
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. [...] A word is a non-zero-length
sequence of characters delimited by white space.
Run Code Online (Sandbox Code Playgroud)
所以,这三个数字是 i) 行数;ii) 字数;和 iii) 字节数。因此,如果我在此目录中运行它:
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file1
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file2
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file3
Run Code Online (Sandbox Code Playgroud)
它将返回:
$ ls -l | wc
4 29 152
Run Code Online (Sandbox Code Playgroud)
这是因为,正如你在上面看到的,有4行输出,其中包含29 个“单词”(一个单词由空格定义)和总共152个字节(注意这包括\n末尾的换行符 ( ) 字符)每行)。
对于更简单的示例,请尝试:
$ echo "foo" | wc
1 1 4
Run Code Online (Sandbox Code Playgroud)
该命令echo "foo"实际打印foo\n(这\n是换行符),所以这是一行、一个单词和 4 个字节。
请注意,第三个字段是字节数,而不是字符数。这在字符可以由几个字节组成的语言环境中尤其重要,例如使用 UTF-8 时(现在趋于规范)。
$ echo fée | wc
1 1 5
Run Code Online (Sandbox Code Playgroud)
在 UTF-8 中,é 字符由两个字节组成。您可以使用该-m选项来获取字符数(m用于多字节字符)。
$ echo fée | wc -m
4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3137 次 |
| 最近记录: |