059 wc命令

命令说明

wc(word count)统计文件的行数、单词数、字节/字符数,常与管道组合做计数,如统计日志条数、进程数量。

语法

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

常用参数

参数说明
-l只统计行数(最常用)
-w只统计单词数
-c只统计字节数
-m只统计字符数(多字节字符与 -c 不同)
-L显示最长行的长度
文件...多文件时逐个统计并输出总计行

使用示例

$ wc -l access.log

统计日志行数

$ ps -ef | grep nginx | wc -l

统计 nginx 进程数(注意含 grep 自身)

$ cat a.txt b.txt | wc -l

合并统计两文件总行数

$ wc -l *.log

逐文件统计并给出总计

$ wc -c file.bin

看文件字节大小

$ grep -c ERROR app.log

另一种计数:grep 直接输出匹配行数

$ echo -n "abc" | wc -c

输出 3:-n 不换行时字节数不含 \n

$ sort file | uniq -c | sort -rn | head

词频统计经典管道

实用技巧

  • wc -l 统计的是换行符个数:最后一行没有换行符就不被计入,cat 拼接文件后行数可能“少一行”即此原因。
  • 管道计数时 grep 自身进程会被算进去,用 ps -ef | grep [n]ginx | wc -l 或 pgrep -c nginx 更准。
  • -c 按字节、-m 按字符:中文 UTF-8 一个字 3 字节,统计中文字数用 -m。
  • wc 默认输出顺序为 行 词 字节,只要单一指标时务必加对应选项,别用 cut 切默认输出(顺序易错)。
  • 大文件 wc 很快(只数换行符),但网络盘/NFS 上仍可能慢,可先 cp 到本地再统计。