Shell awk流程控制

Shell awk流程控制,第1张

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

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存