☰
Linux 命令大全之 wc 命令详解:统计文件的字节数、字数与行数
2026/10/3 2:12:59 网站建设 项目流程
  • 文档
  • 教程

【免费下载链接】linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载

本篇文章基于 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=F
  • wc [选项]... [文件]...:最常用的形式,可同时传入一个或多个文件。
  • 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 # 输出结果 8

ls -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

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载

相关推荐

上一篇:智慧职教刷课脚本:3分钟实现全自动学习,告别手动刷课烦恼!
下一篇:PySpark 测试断言实战:assertDataFrameEqual 与 assertSchemaEqual 深入解析

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询