首页 > 编程语言 > 详细

awk数组

时间:2017-07-13 15:56:54      阅读:396      评论:0      收藏:0      [点我收藏+]

1、使用awk数组统计出以下域名中相同域名出现的次数

[root@oldboyedu]# cat url.txt 
http://www.etiantian.org/index.html
http://www.etiantian.org/1.html
http://post.etiantian.org/index.html
http://mp3.etiantian.org/index.html
http://www.etiantian.org/3.html
http://post.etiantian.org/2.html

第一步:先来统计出一个域名的次数

[root@oldboy files]# awk -F"[/]+" ‘{h[$2]+=1;print $2,h["www.etiantian.org"]}‘ url.txt 
www.etiantian.org 1
www.etiantian.org 2
post.etiantian.org 2
mp3.etiantian.org 2
www.etiantian.org 3
post.etiantian.org 3

以上统计出了www.etiantian.org域名出现的次数,从统计结果可以看出,这里出现了3次。

第二步:统计全部

[root@oldboy files]# awk -F"[/]+" ‘{h[$2]+=1}END{for (key in h)print key,h[key]}‘ url.txt 
mp3.etiantian.org 1
post.etiantian.org 2
www.etiantian.org 3

h[$2]+=1 表示h[$2]=h[$2]+1

h[$2] 表示每次出现相同域名的次数   +1就表示当遇到相同的时候就加一次

for (key in h) 使用for循环来统计它们的次数

print key,h[key] 打印出出现相同域名及出现的次数


2、使用awk数组统计下列字母出现的次数

[root@oldboy files]# cat array.txt 
a  1
b  3
c  2
d  7
b  5
a  3 
g  2
f  6
d  9

解答:

[root@oldboy files]# awk ‘{h[$1]+=$2}END{for (key in h)print key,h[key]}‘ array.txt
a 4
b 8
c 2
d 16
f 6
g 2


本文出自 “每天一小步” 博客,请务必保留此出处http://fenyuer.blog.51cto.com/11265169/1947101

awk数组

原文:http://fenyuer.blog.51cto.com/11265169/1947101

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!