Linux常用基本命令:三劍客命令之-awk數組用法


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM