当前位置:首页>Linux>[Linux下wc常用用法]

[Linux下wc常用用法]

  • 2026-10-11 06:04:17
[Linux下wc常用用法]

wc(word count)是常用的统计命令,最典型的是搭配管道符 | 来进行使用;

基本用法:wc [option] [文件]  #如果不指定文件,则从标准输入读取数据(搭配管道)

常用参数:

-l lines:统计行数(最常用)-w words:统计单词数(空白分隔)-c bytes:统计字节数-m chars:统计字符数(GNU 扩展)-L 最长行长度输出最长一行的字符数

常用场景

# 统计文件行数$ wc -l hello.txt  #10 hello.txtwc -l main.c              # 单个文件wc -l *.c *.h             # 多个文件,末尾会加 total# 和管道符结合使用$ ps aux | wc -l                 # 统计当前进程数$ ls | wc -l                     # 统计当前目录文件数find ./ -name '*.go' | xargs wc -l   # 递归统计某类文件# 统计日志中错误数量grep "ERROR" xxx.log | wc -l    # 统计目录下某某文件的个数find . -name "*.txt"  | wc -l# 看文件的超大行wc -L xxx.log    # 如果输出几百万,就是单行杀手

配合find用法

find . -name '*.c' -exec wc -l {} + 

递归统计 C 源文件总行数的简洁写法,既能看到每个文件的行数,又能自动求和。

  find .            从当前目录开始递归查找

 -name '*.c'    只匹配文件名以 .c结尾的文件

 -exec wc -l {} +   将找到的所有 .c文件打包作为参数传给 wc -l; 即:对找到的每个文件执行 wc -l 命令统计行数,{} 是占位符代表当前文件;+ 表示将多个文件一次性传给 wc,避免为每个文件启动一次进程,大幅提升效率(相比 \;)。

{} +这个结尾告诉 find:把所有匹配的文件名收集起来,一次性作为多个参数附加到 wc -l后面,而不是一个一个地执行。

$ find . -name '*.c' -exec wc -l {} +   42 ./src/main.c   87 ./src/utils.c   31 ./test/test_main.c   160 total

与 xargs对比:等价于 find . -name '*.c' -print0 | xargs -0 wc -l,但 -exec {} +更简洁,不需要额外管道。

最新文章

随机文章