语法格式
单分支if判断语法格式
if ( 判断条件) {
动作指令序列;
}
双分支if判断语法格式
if ( 判断条件) {
动作指令序列1;
}
else {
动作指令序列2;
}
多分支if判断语法格式
if ( 判断条件1) {
动作指令序列1;
}
else if ( 判断条件2) {
动作指令序列2;
}
. . . . . .
else {
动作指令序列n;
}
if属于判断指令,而在awk中所有的动作指令都必须写在{}中。
实际操作
单分支if语句的案例
ps -eo user,pid,pcpu,comm
ps -eo user,pid,pcpu,comm | awk '{if($3 >0.5) {print}}'
ps -eo user,pid,rss,comm | awk '{if($3 >1024) {print}}'
双分支if语句的案例
awk -F: \
'{if($3 <1000) {x++} else{y++}} \
END{print "系统用户个数"x"","普通用户个数"y""}' \
/etc/passwd
ls -l /etc/ | awk \
'{if($1 ~/^-/) {x++} else {y++}} \
END {print "普通文件有"x"个","目录文件有"y"个"}'
seq 10 | awk \
'{if($1 %2==0) {print $1 "是偶数";x++} else{print $1 "是奇数";y++}} \
END{print "偶数的个数"x"","奇数的个数"y""}'
多分支if语句的案例
vim chengji.txt
a同学 98
b同学 87
c同学 79
d同学 65
e同学 50
awk '{
if($2 >=90) {print $1 ,"\t成绩好"} \
else if($2 >=80) {print $1 ,"\t成绩优良"} \
else if($2 >=70) {print $1 ,"\t成绩一般"} \
else if($2 >=60) {print $1 ,"\t成绩不好"} \
else {print $1 ,"\t成绩糟糕"} \
}' chengji.txt