awk数组统计

awk数组统计处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)1http://www.etiantian.org/index.html2http://www.etiantian.org/1.html3http://post.etiantian.org/index.html4http://mp3.etiantian.org/index.html…

大家好,又见面了,我是你们的朋友全栈君。

处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)

1 http://www.etiantian.org/index.html
2 http://www.etiantian.org/1.html
3 http://post.etiantian.org/index.html
4 http://mp3.etiantian.org/index.html
5 http://www.etiantian.org/3.html
6 http://post.etiantian.org/2.html

要求结果:

mp3.etiantian.org 1
post.etiantian.org 2
www.etiantian.org 3

思路:

  1. 取出域名

    1.  以斜线为菜刀取出第二列(域名)

  1. 进行加工

    1. 创建一个数组

    2. 把第二列(域名)作为数组的下标

    3. 通过类似于i++的形式进行计算数量

  2. 统计后把结果输出

 

1、查看需要处理的文件

1 [root@martin ~]# cat test.txt 
2 http://www.etiantian.org/index.html
3 http://www.etiantian.org/1.html
4 http://post.etiantian.org/index.html
5 http://mp3.etiantian.org/index.html
6 http://www.etiantian.org/3.html
7 http://post.etiantian.org/2.html

2、以斜线为分割符,取出第二列,+表示连续的。

1 [root@martin ~]# awk -F "/+" '{print $2}' test.txt 
2 www.etiantian.org
3 www.etiantian.org
4 post.etiantian.org
5 mp3.etiantian.org
6 www.etiantian.org
7 post.etiantian.org

3、创建数组和进行统计

1 [root@martin ~]# awk -F "/+" '{hotel[$2]}' test.txt             #创建数组
2 [root@martin ~]# awk -F "/+" '{hotel[$2];print $2}' test.txt    #创建数组,并通过print 输出元素名字
3 www.etiantian.org
4 www.etiantian.org
5 post.etiantian.org
6 mp3.etiantian.org
7 www.etiantian.org
8 post.etiantian.org

1 [root@martin ~]# awk -F "/+" '{hotel[$2]++}' test.txt                    #对数组相同下标的数组进行计数统计
2 [root@martin ~]# awk -F "/+" '{hotel[$2]++;print $2,hotel[$2]}' test.txt #通过print输出元素名字和统计数
3 www.etiantian.org 1
4 www.etiantian.org 2
5 post.etiantian.org 1
6 mp3.etiantian.org 1
7 www.etiantian.org 3
8 post.etiantian.org 2

$2表示的是每一行的第二列,是一个变量;hotel[$2]++这种形式类似于i++,只不过把变量i换成了数组hotel[$2]

4、统计完毕后再用for循环打印输出数组不同下表和对应统计数

1 [root@martin ~]# awk -F "/+" '{hotel[$2]++}END{for(pole in hotel) print pole,hotel[pole]}' test.txt
2 mp3.etiantian.org 1
3 post.etiantian.org 2
4 www.etiantian.org 3

1 优化显示,格式化输出
2 [root@martin ~]# awk -F "/+" '{hotel[$2]++}END{for(pole in hotel) print pole,hotel[pole]}' test.txt|sort -k2|column -t
3 mp3.etiantian.org   1
4 post.etiantian.org  2
5 www.etiantian.org   3

5、统计linux系统的history历史记录使用前10的命令

 1 [root@martin ~]# history|awk '{order[$2]++}END{for(n in order) print n,order[n]}'|sort -rnk2|head|column -t
 2 awk                          54
 3 history|awk                  44
 4 [                            22
 5 ll                           19
 6 rpm                          12
 7 yum                          8
 8 w                            6
 9 uname                        6
10 history                      6
11 /etc/rc.d/init.d/keepalived  5

 

本文参考自 “李导的博客” 博客,原地址http://lidao.blog.51cto.com/3388056/1912219

转载于:https://www.cnblogs.com/jmaly/p/6689310.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161670.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PotPlayer 64 bit快捷键大全

    PotPlayer 64 bit快捷键大全PotPlayer64bit快捷键大全前言-`д´-最近用PotPlayer64bit,在不知道的情况下视频翻转一下或者各种奇葩样子,总归一句话,弄不好了(눈_눈)。今天有时间总结一下(¬、¬)。  下载安装ヽ(o・་།・o)ノPotPlayer中文网PotPlayer官网ᕦ(・ㅂ・)ᕤ 快捷键方法一????安装完之后,右键–>关于–>有没有看到快捷键列表,就是那个????方法二????看下面看下面,没错,又是它

    2022年5月21日
    121
  • c语言匹配字符串表达式函数_java字符串匹配

    c语言匹配字符串表达式函数_java字符串匹配最近在写一个程序,需要用到字符串匹配,并且返回匹配的字符串,C语言库函数中的strtstr无法满足我的要求,只能自己写了。代码如下//stringmatchfunctionchar*matchString(constchar*buf,constchar*sub){ char*tbuf=buf; char*tsub=sub; inti=0;//tbuf…

    2022年8月21日
    3
  • Spring概述「建议收藏」

    Spring概述「建议收藏」Spring概述

    2022年4月22日
    48
  • 人工与软件刷流量有什么区别,如何做刷流量效果才最好?

    人工与软件刷流量有什么区别,如何做刷流量效果才最好?大家好,对于流量这个关键词我相信有绝大部分的是了解的,无论是对于开网店的,还是做直播亦或是做其他事情的,都需要流量进行曝光、推广等,但是,一些网店因为流量不够,所能得到的流量池有限,所以就导致了许多开网店的朋友们进行刷流量,现在刷流量的软件也是千千万万,那么选择哪种会比较好一些呢,亦或是人工刷流量与软件刷流量有什么区别呢?商家都了解真实的人工访客流量是需要有店铺停留时间或者是商品详情页的停留时间的,而这个停留时间是根据商家的店铺权重而不同的,每一个等级的店铺所算的停留时间是不相同的,如果商品优.

    2022年9月29日
    1
  • 新浪微博模仿的是_微博随便看看在哪

    新浪微博模仿的是_微博随便看看在哪这几天学会了ListView组件,希望能帮到你们。    程序测试图如下:       1.代码如下:   MainActivity.java  packagecom.example.weibokankan;importjava.util.ArrayList;importjava.util.List;

    2025年7月23日
    1
  • 逻辑回归算法原理实例_逻辑回归算法案例

    逻辑回归算法原理实例_逻辑回归算法案例逻辑回归算法的原理

    2022年8月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号