wc 命令一般是作为组合命令的一员与其他命令一同起到统计的作用。而一般情况下使用 wc -l 命令较多。 uniq 可检查文本文件中重复出现的行,一般与 sort 命令结合使用。一起组合搭配使用完成统计、排序、去重。
1 wc 常用组合命令
- ls | wc -l # 统计当前文件夹下,文件数量;
- ls *.txt | wc -l # 统计当前文件夹下、第一层目录下所有的 txt 文件数量;
- find . -maxdepth 1 -name '*.txt' | wc -l # 统计当前文件夹、第一层目录下所有的 txt 文件数量;
2 wc 基本参数和格式
命令格式: wc [-clmw] [file ...]
- -c # 统计字节数
- -l # 统计行数
- -w # 统计单词数
- -m # 统计字符数
3 wc 命令示例
c、l、w、m 用例
read.text 内容如下:
!
hello china!
hello!
china!
配合 grep 统计命中的目标行数用例
# grep 正则匹配统计命中的目标行数,wc 命令在后面
grep -E "(14:41(.)+internal-internal spend)" 002.info.log | wc -l
4 uniq 的常用参数以及配合 sor t 应用示例
uniq 常用参数
uniq 可检查文本文件中重复出现的行,一般与 sort 命令结合使用。
- -c 或 --count 在每列旁边显示该行重复出现的次数;
- -d 或 --repeated 仅显示重复出现的行;
- -u 或 --unique 仅显示出一次的行;
info.log 内容如下:
111,222,333
111,222,333
333,444,555
xxx,yyy,zzz
cat info.log |sort -r
xxx,yyy,zzz
333,444,555
111,222,333
111,222,333
cat info.log |sort|uniq
111,222,333
333,444,555
xxx,yyy,zzz
cat info.log |sort -r|uniq -u
xxx,yyy,zzz
333,444,555
cat info.log |sort -r|uniq -d
111,222,333
cat info.log |sort -r|uniq -c
1 xxx,yyy,zzz
1 333,444,555
2 111,222,333
5 案例一(文本统计)
有一个 b. txt 文本 (内容如下),要求将所有域名截取出来,并统计重复域名出现的次数。
http://www.baidu.com/index.html
https://www.atguigu.com/index.html
http://www.sina.com.cn/1024.html
https://www.atguigu.com/2048.html
http://www.sina.com.cn/4096.html
https://www.atguigu.com/8192.html
命令和结果
cat b.txt |cut -d "/" -f3 |sort| uniq -c|sort -nr
3 www.atguigu.com
2 www.sina.com.cn
1 www. baidu.com
# cut -d "/" -f3 用"/"作为分隔符,截取第个3字段
# sort 第一次排序
# uniq -c 显示该行重复次数
# sort -nr 按照数值从大到小排序
6 案例二( ip 连接数统计并排序)
统计当前服务器正在连接的 ip 地址,并按连接次数排序;
netstat -an I grep ESTABLISHED | awk '{print $5}' | cut -d ":" -f1 | sort -n | uniq -c | sort -nr
7 小结
wc 用来统计指定文件中的字节数、行数、单词数、字符数; uniq 可检查文本文件中重复出现的行列。 可对标准输入,配合 grep、sort、find 等命令完成统计、排序、去重。