Linux常用基本命令:三剑客命令之-awk数组用法

7 篇文章 0 订阅
4 篇文章 0 订阅

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 数组 )

root$ awk 'BEGIN{a[0]="zhangsan";a[1]="lisi"; if( 1 in a ) print a[1]; }'
lisi

4,数组也可以用关联索引定义

root$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]}'
张三

5,delete:删除一个数组项或者一个数组

root$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a["name"]; print       a["name"]; }'
张三

root$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a["name"]; print      a["name2"]; }'
张三
李四
root$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a; print  a["name2"]; }'
张三

6,数字,字符串都可以进行算术运算

当一个不存在的元素,参与算术运算时,会被当做0
当一个元素是字符串,参与算术运算时,会被当做0

root$ awk 'BEGIN{ a = 1; print a; a = a + 1; print a }'
1
2
root$ awk 'BEGIN{ a = "ghostwu"; a = a + 1; print a }'
1
root$ awk 'BEGIN{ print a[0]; a[0] = a[0] + 1; print a[0] }'
 
1

7,应用,统计某个字符串出现的次数

root$ 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
root$ 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值