Linux wc命令是Word Count的缩写,主要用于统计文本文件或标准输入流中的行数、单词数、字节数以及字符数,是Linux系统下文本处理场景中的高频使用工具,能够帮助用户快速了解文件的基础内容规模。
wc命令基本语法
wc命令的基础语法格式如下:
wc [参数] [文件名称]
如果不指定文件名称,wc命令会默认从标准输入读取内容进行统计,用户可以通过管道符将其他命令的输出传递给wc进行处理。
常用参数说明
wc命令支持多个参数,不同参数对应不同的统计维度,常用参数如下表所示:
| 参数 | 作用说明 |
|---|---|
| -l | 仅统计行数(line count) |
| -w | 仅统计单词数(word count),单词以空白字符分隔 |
| -c | 仅统计字节数(byte count) |
| -m | 仅统计字符数(character count),注意和字节数的区别 |
| -L | 统计最长行的长度 |
基础使用示例
统计单个文件的基础信息
假设当前目录下有一个名为test.txt的文件,内容如下:
hello world this is a test file Linux wc command demo
直接执行wc命令统计该文件:
wc test.txt
输出结果类似如下:
3 11 52 test.txt
结果中三个数字依次对应行数、单词数、字节数,最后是文件名。
仅统计行数
使用-l参数可以只获取文件的行数:
wc -l test.txt
输出结果为:
3 test.txt
统计多个文件
wc命令支持同时传入多个文件,会分别统计每个文件的信息,最后还会给出总和:
wc -w test.txt test2.txt
输出结果会依次展示两个文件的单词数,最后一行是总单词数。
结合管道符使用
可以通过管道符将其他命令的输出传递给wc统计,比如统计当前目录下有多少个普通文件:
ls -l | grep "^-" | wc -l
该命令先列出当前目录所有文件,过滤出普通文件,再统计行数得到普通文件的数量。
注意事项
- 字节数和字符数的区别:对于ASCII字符,1个字符等于1个字节;对于中文等多字节字符,1个字符可能对应多个字节,统计时需要根据需求选择
-c或-m参数。 - 单词的统计规则:wc命令默认以空格、制表符、换行符等空白字符作为单词的分隔符,连续空白字符会被视为一个分隔符。
- 如果没有指定文件且未通过管道传入输入,wc命令会等待用户手动输入内容,输入完成后按Ctrl+D结束输入,之后会输出统计结果。
进阶使用场景
统计日志文件中包含指定关键词的行数,比如统计access.log中包含404状态码的行数:
grep "404" access.log | wc -l
该命令先过滤出包含404的行,再统计行数,快速得到404请求的数量。