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