关于后端:010-Linux-文本统计与去重-wc-和-uniq

2次阅读

共计 1550 个字符,预计需要花费 4 分钟才能阅读完成。

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 …]

  1. -c # 统计字节数
  2. -l # 统计行数
  3. -w # 统计单词数
  4. -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 命令联合应用。

  1. - c 或 –count 在每列旁边显示该行反复呈现的次数;
  2. - d 或 –repeated 仅显示反复呈现的行;
  3. - 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 等命令实现统计、排序、去重。

「不甩锅的码农」原创,转载请注明起源,未经受权禁止商业用途!同名 GZH 请关注!

正文完
 0