- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
本篇文章基于 linux-command 命令大全仓库中的 command/wc.md 文档展开,全面讲解 Linux 核心文本统计工具wc的语法、选项、参数与实战用法。读完本文,你将掌握如何快速统计文件的字节数、字符数、行数和单词数,并能熟练组合管道、重定向与find/xargs处理批量文件的统计需求。
wc 命令是什么
wc(word count)是 Linux 下最常用的文本统计命令之一,用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令可以计算文件的 Byte 数、字数或是列数;若不指定文件名称,或是所给予的文件名为-,则wc指令会从标准输入设备读取数据。当同时统计多个文件时,wc还会在最末行给出所有文件的总统计数(total行)。
在 linux-command 仓库中,wc的文档位于 command/wc.md,与仓库内其他 600 多个 Linux 命令文档(如 tail.md、find.md、xargs.md)共同构成完整的 Linux 命令速查手册,这些 Markdown 文档通过 scripts/build.mjs 构建后渲染为可检索的 Web 页面(对应模板见 template/details.ejs)。
语法格式
wc命令的语法有三种常见形式:
wc(选项)(参数) wc [选项]... [文件]... wc [选项]... --files0-from=Fwc [选项]... [文件]...:最常用的形式,可同时传入一个或多个文件。wc [选项]... --files0-from=F:从文件F中读取以空字符(NUL,即\0)分隔的文件名列表,适用于文件名包含换行符等特殊字符的场景,可配合find ... -print0使用。
当文件名为-或完全省略文件参数时,wc从标准输入读取数据。
选项详解
wc的常用选项如下:
-c # 统计字节数,或--bytes:显示 Bytes 数。 -l # 统计行数,或--lines:显示列数。 -m # 统计字符数,或--chars:显示字符数。 -w # 统计字数,或--words:显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 -L # 打印最长行的长度,或--max-line-length。 --help # 显示帮助信息。 --version # 显示版本信息。各选项的核心作用可归纳为下表:
| 选项 | 长选项 | 含义 |
|---|---|---|
-c | --bytes | 统计字节数(Bytes) |
-l | --lines | 统计行数 |
-m | --chars | 统计字符数 |
-w | --words | 统计单词数(由空白、跳格或换行分隔的字符串视为一个单词) |
-L | --max-line-length | 输出所有行中最长行的长度 |
| — | --help | 显示帮助信息 |
| — | --version | 显示版本信息 |
需要注意:
- 不加任何选项时,
wc默认依次输出行数、单词数、字节数三列数据。 -c与-m的区别在于字符编码:对于纯 ASCII 文本二者结果相同,但遇到中文等多字节字符时,-m按字符数统计而-c按字节数统计,结果会明显不同。- 选项可以合并使用,例如
wc -lc同时统计行数和字节数。
参数说明
文件:需要统计的文件列表,可以是单个文件、多个文件、通配符匹配到的文件集合,也可以是-(表示标准输入)。
实战示例
统计当前目录下所有文件的行数及总计
wc -l * # 统计当前目录下的所有文件行数及总计行数。 wc -l *.js # 统计当前目录下的所有 .js 后缀的文件行数及总计行数。 find . * | xargs wc -l # 当前目录以及子目录的所有文件行数及总计行数。说明:
wc -l *会将当前目录下所有非隐藏文件依次统计,并在末尾输出total总计行;wc -l *.js借助 shell 通配符只匹配.js文件;find . * | xargs wc -l通过管道把find找到的当前目录及子目录下的全部文件交给xargs,再调用wc -l批量统计,是递归统计行数的经典组合。
查看文件的字节数、字数、行数
wc test.txt # 输出结果 7 8 70 test.txt # 行数 单词数 字节数 文件名不指定选项时,wc默认输出四列:行数、单词数、字节数、文件名。上面的结果表示test.txt有 7 行、8 个单词、70 个字节。
只打印统计数字,不打印文件名
wc -l < test.txt # 输出结果 7使用输入重定向<把文件内容作为标准输入传给wc,此时输出中不再包含文件名,只保留统计数字,适合在脚本中直接赋值给变量使用。
统计当前目录下的文件数(不包含隐藏文件)
# 要去除TOTAL行 expr $(ls -l | wc -l) - 1 # 输出结果 8ls -l的输出第一行是total总容量行,因此统计文件数时需要减去 1;通过命令替换$(...)将wc -l的统计结果作为操作数传给expr做算术运算。需要注意:ls -l输出中包含目录项本身,此方法统计的是当前目录下可见条目(含目录)的数量。
多文件统计的真实输出
[root@centos7 ~]# wc -l * 21 LICENSE 270 README.md wc: example: read: Is a directory 785 lerna-debug.log 25 lerna.json wc: node_modules: read: Is a directory 23603 package-lock.json 79 package.json 3 renovate.json 24786 total从输出可以看到:
- 每个文件单独占一行,依次输出行数、文件名;
- 末尾的
24786 total是所有文件行数之和; - 当参数中包含目录(如
example、node_modules)时,wc会打印wc: xxx: read: Is a directory的报错信息并跳过该目录,这解释了为什么用wc -l *统计目录行数时并不递归进入子目录——递归统计应改用前文find . * | xargs wc -l的组合方式。
进阶用法与注意事项
组合多个选项按需输出
wc -lcw file.txt # 同时统计行数、字节数、单词数 wc -L file.txt # 查看文件中最长一行的长度,常用于检测超长行与管道结合处理标准输入
cat file.txt | wc -l # 统计文件行数 ps aux | wc -l # 统计当前进程数量 history | wc -l # 统计历史命令条数 grep 'error' log.txt | wc -l # 统计日志中 error 出现的行数wc是管道链中最常用的“计数器”,任何命令的输出都可以通过管道交给wc -l得到行数,这是脚本编程中统计条目数量的标准做法。
统计多个文件的字符数(含中文场景)
wc -m 中文文件.txt # 按字符数统计 wc -c 中文文件.txt # 按字节数统计(UTF-8 下中文每个占 3 字节)对包含中文等多字节字符的文件,-m与-c的结果差异明显,应根据业务需求(如字数统计 vs 带宽计算)选择正确的选项。
结合仓库继续深入学习
wc命令是 Linux 文本处理的基石,与之配合使用频率最高的命令包括 find(查找文件)、xargs(批量传参)、grep(文本过滤)和 tail(查看文件尾部)。linux-command 仓库中的每份命令文档都遵循"补充说明 + 语法 + 选项 + 参数 + 实例"的统一结构,可直接查阅对应 Markdown 文件或通过仓库构建的 Web 站点搜索学习。
小结
wc命令虽小,却是统计文件规模、校验数据、编写自动化脚本时不可或缺的工具。掌握-c、-l、-m、-w、-L五个核心选项,理解多文件输出中的total行与目录报错行为,并熟练运用标准输入重定向与管道组合,即可覆盖日常绝大多数统计需求。更详细的命令选项说明与更多实例,可随时查阅仓库文档 command/wc.md 及其构建生成的 Web 版本。
- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
相关推荐
GetQzonehistory 完整指南:3步把QQ空间历史说说全部导出到Excel和图片
GetQzonehistory 完整指南:3步把QQ空间历史说说全部导出到Excel和图片 你翻QQ空间说说,发现早期内容已被删除或不再显示在动态流里。GetQ
网页爬虫数据分析wc 命令实战指南:基于 tldr 阿拉伯语页面掌握行数、词数与字节统计
wc 命令实战指南:基于 tldr 阿拉伯语页面掌握行数、词数与字节统计 wc (word count)是 GNU coreutils 中最常用的文本统计工具之
文档教程知识库深度解析Ray:构建高性能分布式AI计算引擎的5大架构优势
深度解析Ray:构建高性能分布式AI计算引擎的5大架构优势 Ray是一个为AI和机器学习工作负载设计的开源分布式计算引擎,它提供了统一的编程模型来简化分布式应用
人工智能分布式训练强化学习任务调度模型推理服务后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考