awk高级应用

本文介绍了awk的高级应用,包括流程控制结构如单分支、双分支和多分支,以及awk数组的定义、调用和遍历。通过示例展示了如何在awk中使用if...else语句进行条件判断,以及如何处理和遍历数组。同时提到了shell数组,并给出了模拟DOS攻击场景下统计IP访问次数的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

awk流程控制

分支结构

单分支

if(条件){编辑指令}

[root@room9pc01 ~]# awk -F:  '{if($3>1000){x++}} END{print x}' /etc/passwd   //文件中/etc/passwd 中UID大于1000的
1



双分支

if(条件){编辑指令1} else {编辑指令2}

[root@room9pc01 ~]# awk -F:  '{if($3>1000){x++}else{y++}} END{print x,y}' /etc/passwd
1 43

多分支

if(条件){编辑指令1} else if {编辑指令2}..else{编辑指令N}


awk数组

数组的定义

格式:数组名[下标]=元素值

调用数组

格式:数组名[下标]

遍历数组

for(变量 in 数组名) {print 数组名[变量]}

[root@room9pc01 ~]# awk 'BEGIN{x[0]=11;x[1]=22;print x[1],x[0]}'

22 11


[root@room9pc01 ~]# awk 'BEGIN{a[0]=11;a[1]=22;a[2]=33;a[3]=44;for(i in a) {print a[i]}}'
11
22
33
44

shell数组是一个可以存储多个值的变量

[root@room9pc01 ~]# x=(11 22 33)
[root@room9pc01 ~]# echo ${x[0]}
11

模拟有100个人,在上网 访问网站10W次,DOS攻击 deny of service

[root@room9pc01 ~]# ab -c 100 -n 100000 http://172.25.0.10/


公式:统计出现次数

[root@desktop0 ~]# awk '{a[$1]++} END{for(i in a ) {print a[i],i}}' /var/log/httpd/access_log |sort -n //筛选IP对应访问本机的次数,sort -n是排序命令







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值