if语句
- 单分支if判断
awk '指令' 文件
$ awk -F: '{if($3>=1000){i++}} END{print i}' /etc/passwd
1
$ awk -F: '{if($1=="root"){i++}} END{print i}' /etc/passwd
1
$ uptime | awk '{if($NF>0.01){print "CPUload:"$NF}}'
CPUload:0.35
- 双分支if判断
- awk '{指令}' 文件
$ awk -F: '{if($3>=1000){i++}else{j++}} END{print "普通用户:"i,"系统用户:"j}' /etc/passwd
普通用户:1 系统用户:18
$ ls -l /etc | awk '{if($1~/^-/){x++} else {y++}}END {print "普通文件个数:"x,"目录个数:"y}'
普通文件个数:83 目录个数:91
$ ls -l /etc | awk '{if($1~/^-/){x++}else if($1~/^d/){y++}else{z++}} END{print "普通文件个数:"x,"目录个数:"y,"其他个数:"z}'
普通文件个数:83 目录个数:74 其他个数:17
for循环
- awk的for循环采用与C语言一样的语法格式
- for(表达式1;表达式2;表达式3){指令}
$ awk 'BEGIN {for (i=1;i<=5;i++){print i}}'
1
2
3
4
5
$ awk 'BEGIN {for (i=5;i>=1;i--){print i}}'
5
4
3
2
1
小结
- 单分支:if(条件){指令}
- 双分支:if(条件){指令}else{指令}
- 多分支:if(条件){指令}else if(条件){指令}... ...else{指令}
- for循环:for(表达式1;表达式2;表达式3){指令}