Shell awk流程控制

  • 单分支if指令

awk '{指令}' 文件
       if() {指令}

[root@zabbix-server script]# awk -F: '{if($3>=1000){i++}}END{print i}' /etc/passwd
2
[root@zabbix-server script]# awk -F: '{if($1=="root"){print $1,$3}}' /etc/passwd
root 0
[root@zabbix-server script]# uptime | awk '{if($NF>0.01){print "CPUload:"$NF}}'
CPUload:0.05
[root@zabbix-server script]# 
  • 双分支if判断

awk '{指令}' 文件
      if() {指令}else{}

[root@zabbix-server script]# awk -F: '{ if($3>=1000){i++}else{j++} } \
> END{print "普通用户:"i,"系统用户:"j}' /etc/passwd
普通用户:2 系统用户:47
[root@zabbix-server script]# ls -l /etc/ | awk '{ if($1~/^-/){x++}else{y++} } \
END{print "普通文件:"x,"目录个数:"y}'
普通文件:125 目录个数:158

  • 多分支if判断
    awk '{指令}' 文件
          if() {指令}else if(){}... ...else{}
[root@zabbix-server script]# ls -l /etc/ | awk \
> '{
> if($1~/^-/){x++} else if($1~/^d/){y++}else{z++} \
> }
> END{print"普通文件个数:"x,"目录个数:"y,"其他个数:"z}'
普通文件个数:125 目录个数:142 其他个数:16

概述

  • awk的for循环采用与C语言一样的语法格式

for(表达式1;表达式2;表达式3){指令}

[root@zabbix-server script]# awk 'BEGIN{for (i=1;i<=5;i++){print i}}'
1
2
3
4
5
[root@zabbix-server script]# awk 'BEGIN{for(i=5;i>=1;i--){print i}}'
5
4
3
2
1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值