awk数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk数组相关的知识,希望对你有一定的参考价值。

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

[[email protected]]# 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

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

[[email protected] 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次。

第二步:统计全部

[[email protected] 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数组统计下列字母出现的次数

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

解答:

[[email protected] 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数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 awk 中获取数组的长度?

利用awk赋值

web代码片段

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

Bash:awk从数组项中删除括号

javascript常用代码片段