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

本文介绍了Linux中的wc命令,用于统计文本的行数、单词数和字节数。内容包括wc命令的使用方式、常见选项及多个参考示例,展示了如何显示文件的各种统计信息,同时指出了wc命令在处理多字节字符集时字符数和字节数的区别。
摘要由CSDN通过智能技术生成

简介

“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.c
 27  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.txt
  69  165 1680 queue.c
  24   56  355 test2.c
  27   74  510 test.c
 120  295 2545 total

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

注意事项

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WKJay_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值