欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Linux 常用命令 - wc 【统计文件的行数、单词数和字节数】

Linux 常用命令 - wc 【统计文件的行数、单词数和字节数】

2025/11/16 21:05:10 来源:https://blog.csdn.net/Cris_Jay/article/details/139621386  浏览:    关键词:Linux 常用命令 - wc 【统计文件的行数、单词数和字节数】

简介

“wc” 与 WC 以及国粹都没有任何关系,实际上其来源于 word count 的缩写,这个命令用于统计指定文本的换行数、单词数和字节数。简单来说,它能快速给出任何文本的基本信息。wc 命令通过读取标准输入或指定的文件内容,计算出行、单词和字节的总数。

使用方式

wc [选项]... [文件]...

常用选项

  • -c:打印字节数。
  • -m:打印字符数。
  • -l:打印换行数。
  • --files0-from=F:从指定文件 F 中读取以\0分割的文件名,并统计这些文件的信息。
  • -L:打印最长行的宽度。
  • -w:打印单词数。
  • --help:显示帮助信息。
  • --version:显示版本信息。

参考示例

1. 显示文件的换行数、单词数以及字节数

wc test.c

可以看到 test.c 文件中有 27 个换行符,74个单词,总共 510 个字节。

jay@jaylinuxlenovo:~/test$ wc test.c27  74 510 test.c

2. 仅显示文件的换行数

wc -l test.c

可以看到 test.c 中有 27 个换行符。

jay@jaylinuxlenovo:~/test$ wc -l test.c
27 test.c

3. 仅显示文件的字节数

wc -c test.c

可以看到 test.c 中有 510 个字节。

jay@jaylinuxlenovo:~/test$ wc -c test.c
510 test.c

4. 仅显示文件的字符数

wc -m test.c

可以看到 test.c 中有 472 个字符。字符数和字节数的区别详见下文注意事项。

jay@jaylinuxlenovo:~/test$ wc -m test.c
472 test.c

5. 仅显示文件的单词数

wc -w test.c

可以看到 test.c 中有 74 个单词。

jay@jaylinuxlenovo:~/test$ wc -w test.c
74 test.c

6. 从指定文件中读取文件名并打印这些文件的信息

wc --files0-from=files0.txt

首先使用 ls 命令查看当前文件夹下的所有 .c 文件,用于后面对比 wc 指令执行的正确性:

jay@jaylinuxlenovo:~/test$ ls ./*.c
./queue.c  ./test2.c  ./test.c

可以看到当前文件夹下有 3 个 .c 文件,分别为 queue.c、test2.c、test.c。现在我们使用 find 指令结合-print0 选项将当前文件夹下的 .c 文件名以\0分隔写入到 files0.txt 文件中:

find *.c -print0 > files0.txt

最后使用 wc --files0-from 选项读取该文件并对其内容中出现的文件名进行解析并打印对应文件的统计信息:

jay@jaylinuxlenovo:~/test$ wc --files0-from=files0.txt69  165 1680 queue.c24   56  355 test2.c27   74  510 test.c120  295 2545 total

可以看到该命令正确打印出了上述三个文件的统计信息以及所有文件的总和信息,说明我们的命令执行是正确的。

注意事项

  • wc 命令在除了文件名没有其他选项时即输入 wc [文件名] 时,会默认输出四个信息,分别为:换行数、单词数、字节数和文件名。
  • 当统计多个文件时,wc 会为每个文件以及所有文件的总和各自显示一行统计信息。
  • wc 计算的 “单词” 是通过空白字符(如空格、制表符等)分隔的字符串,因此其对“单词”的定义可能与日常使用略有不同。
  • wc 命令输出的换行数实际上是指换行符的数量,如果文件末尾不是换行符,那么其值可能为真实行数 -1。
  • wc 的 -c 选项是打印文件中的 字节 数,而 -m 选项是打印文件中的 字符 数。在多字节字符集中,一个字符可能由多个字节组成,如 UTF-8 。因此这种情况下字符计数和字节计数是不同的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词