AWK的數組用法跟javascript類似。 1,定義數組 2,列印一個沒有定義的數組項,值為空 3,判斷一個數組項 是否存在,用 ( 下標 in 數組 ) 4,數組也可以用關聯索引定義 5,delete:刪除一個數組項或者一個數組 6,數字,字元串都可以進行算術運算 >當一個不存在的元素,參與算術 ...
AWK的數組用法跟javascript類似。
1,定義數組
awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[0]}'
2,列印一個沒有定義的數組項,值為空
awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[2]}'
3,判斷一個數組項 是否存在,用 ( 下標 in 數組 )
ghostwu@dev:~/linux/awk$ awk 'BEGIN{a[0]="zhangsan";a[1]="lisi"; if( 1 in a ) print a[1]; }' lisi
4,數組也可以用關聯索引定義
ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="張三";a["name2"]="李四";print a["name"]}' 張三
5,delete:刪除一個數組項或者一個數組
ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="張三";a["name2"]="李四";print a["name"]; delete a["name"]; print a["name"]; }' 張三 ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="張三";a["name2"]="李四";print a["name"]; delete a["name"]; print a["name2"]; }' 張三 李四 ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="張三";a["name2"]="李四";print a["name"]; delete a; print a["name2"]; }' 張三
6,數字,字元串都可以進行算術運算
>當一個不存在的元素,參與算術運算時,會被當做0
>當一個元素是字元串,參與算術運算時,會被當做0
ghostwu@dev:~/linux/awk$ awk 'BEGIN{ a = 1; print a; a = a + 1; print a }' 1 2 ghostwu@dev:~/linux/awk$ awk 'BEGIN{ a = "ghostwu"; a = a + 1; print a }' 1 ghostwu@dev:~/linux/awk$ awk 'BEGIN{ print a[0]; a[0] = a[0] + 1; print a[0] }' 1
7,應用,統計某個字元串出現的次數
ghostwu@dev:~/linux/awk$ awk '{count[$2]++} END{ for( i in count ) { print i,count[i]; } }' host.txt 192.177.81.1 1 10.0.0.5 3 192.168.9.254 1 192.168.1.1 3 192.168.3.98 2 ghostwu@dev:~/linux/awk$ cat host.txt host1 192.168.1.1 host2 192.177.81.1 host3 10.0.0.5 host4 192.168.3.98 host5 192.168.3.98 host6 192.168.9.254 host7 192.168.1.1 host8 192.168.1.1 host9 10.0.0.5 host10 10.0.0.5