awk數組

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章