需求
- 在文件内容中,将文件中的域名取出并根据域名进行计数排序处理
- 文件样例:
https://www.csdn.com/index.html https://www.csdn.com/1.html https://www.baidu.com/index.html https://www.aliyun.com/index.html https://www.csdn.com/query.html https://www.baidu.com/index.html https://www.baidu.com/search.html https://www.aliyun.com/test.html https://www.baidu.com/index.html
知识点
- uniq
对相邻的相同行内容去重 - sort
排序 - 去重统计
[root@localhost ~]# sort test.txt |uniq -c 2 10.0.0.7 3 10.0.0.8 2 10.0.0.9
统计去重
-
使用awk找出域名
[root@localhost ~]# awk -F / '{print $3}' url.txt www.csdn.com www.csdn.com www.baidu.com www.aliyun.com www.csdn.com www.baidu.com www.baidu.com www.aliyun.com www.baidu.com
-
用sort排序,将相同的行放在一起
[root@localhost ~]# awk -F / '{print $3}' url.txt|sort www.aliyun.com www.aliyun.com www.baidu.com www.baidu.com www.baidu.com www.baidu.com www.csdn.com www.csdn.com www.csdn.com
-
用uniq去重,并计数
[root@localhost ~]# awk -F / '{print $3}' url.txt|sort|uniq -c 2 www.aliyun.com 4 www.baidu.com 3 www.csdn.com
-
用sort倒序排序
[root@localhost ~]# awk -F / '{print $3}' url.txt|sort|uniq -c|sort -r 4 www.baidu.com 3 www.csdn.com 2 www.aliyun.com
-
使用awk高级用法
[root@localhost ~]# awk -F "/" '{S[$3]=S[$3]+1}END{for(k in S) print k,S[k]}' url.txt |sort -rn -k2 www.baidu.com 4 www.csdn.com 3 www.aliyun.com 2