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 到本地再统计。