wc 命令使用文档
1. 命令概述
wc(Word Count)是 UNIX/Linux 系统中核心的命令行工具,用于统计文件或标准输入的行数、单词数、字符数、字节数等信息。默认情况下,wc 会输出行数、单词数、字符数(字节数),并附带目标文件名;若未指定文件,则统计终端输入的内容。
1.1 核心特性
- 支持单个/多个文件统计,也支持管道(
|)传递输入;
- 可通过参数指定仅统计行数、单词数、字符数等单一维度;
- 对“单词”的定义:以空格、制表符(
\t)、换行符(\n)为分隔符的任意字符序列。
2. 基本语法
说明:
[选项]:可选,用于指定统计维度(如仅统计行数);
[文件]:可选,指定要统计的文件(可多个);若省略文件,wc 会读取标准输入(终端手动输入或管道传递的内容)。
3. 常用选项
| 选项 |
全称(GNU版本) |
功能说明 |
-l |
--lines |
仅统计行数(换行符 \n 的数量,空文件行数为0) |
-w |
--words |
仅统计单词数(以空白符分隔的字符序列,连续非空白字符算1个单词) |
-c |
--bytes |
仅统计字节数(含所有字符,包括空格、换行、制表符,多字节字符如中文按字节数算) |
-m |
--chars |
仅统计字符数(多字节字符如中文、Emoji 算1个字符,需系统支持 UTF-8) |
-L |
--max-line-length |
统计文件中最长行的字符数(不包含换行符) |
-h |
--help |
显示帮助信息并退出 |
-V |
--version |
显示版本信息并退出 |
注意:-c 和 -m 的区别:
- 英文/数字等单字节字符:
-c 和 -m 结果一致;
- 中文等多字节字符(UTF-8 编码):
-c 统计字节数(1个中文=3字节),-m 统计字符数(1个中文=1字符)。
4. 实用示例
准备测试文件
先创建一个测试文件 test.txt,内容如下(包含空格、制表符、换行):
1 2 3 4 5 6
| cat > test.txt << EOF hello world 你好 c 语言 123 end EOF
|
4.1 基础用法(无选项)
默认输出「行数 单词数 字节数 文件名」:
输出示例:
含义:
- 3 行、7 个单词(hello/world/你好/c/语言/123/end)、38 字节。
4.2 仅统计行数(-l)
输出:
4.3 仅统计单词数(-w)
输出:
4.4 统计字符数 vs 字节数(-m vs -c)
1 2 3 4 5 6 7
| wc -m test.txt
wc -c test.txt
|
4.5 统计最长行长度(-L)
输出示例:
含义:test.txt 中最长行的字符数为16(第二行「你好 c 语言 123」)。
4.6 统计多个文件
同时统计 test.txt 和系统文件 /etc/hosts:
1
| wc -l test.txt /etc/hosts
|
输出示例:
1 2 3
| 3 test.txt 10 /etc/hosts 13 总用量
|
最后一行「总用量」是所有文件的行数之和。
4.7 统计标准输入(无文件)
方式1:手动输入(按 Ctrl+D 结束输入)
输出:
方式2:管道传递输入(常用)
结合 cat/grep 等命令,统计过滤后的内容:
1 2 3
| cat test.txt | grep "c" | wc -l
|
4.8 仅显示统计数值(隐藏文件名)
若只需数值,可通过 awk 提取:
1 2 3
| wc -l test.txt | awk '{print $1}'
|
5. 注意事项
- 空文件处理:空文件的行数、单词数为0,字节数为0;
- 换行符计数:行数统计的是
\n 的数量,若文件最后一行无换行符,-l 仍会统计为有效行(符合 UNIX 规范);
- 终端输入结束:Linux/Mac 按
Ctrl+D,Windows(WSL)按 Ctrl+Z 再按回车;
- 多文件统计:多个文件时,
wc 会输出每个文件的统计结果,最后输出「总用量」;
- 符号链接:默认统计符号链接本身的字节数,若要统计链接指向的文件,需加
-L(--dereference)。
6. 总结
wc 是 Linux 核心统计工具,默认输出「行数 单词数 字节数」,通过选项可精准统计单一维度;
-l/-w/-c 是最常用选项,-m 适合统计多字节字符(如中文)的字符数;
- 支持文件统计和标准输入统计,结合管道可实现复杂的过滤统计场景。