awk(三)If语句

条件判断语句:
if(表达式)
{语句1}
elseif(表达式)
{语句2}
else
{语句3}
格式中"语句"可以多个语句,最好将多个语句用{}括起来。
例:
awk -F: '{if($1~/mail/){print$1}}' /etc/passwd#如果第一个字段为mail,输出第一个字段
awk -F: '{if($1~/mail/)print$1}' /etc/passwd#简写,
 
awk -F: '{if($1~/mail|sshd/){print$1}}' /etc/passwd#如果第一个字段为mail或者sshd,输出第一个字段
 
awk -F: '{if($1~/mail|sshd/){print$1}else{print$2}}' /etc/passwd#如果第一个字段为mail或者sshd,输出第一个字段;其余输出第二个字段
 
条件表达式
==   !=   >   >=
例:
awk -F: '{if($1=="mail"){print$1}}' /etc/passwd #如果第一个字段等于mail,输出该行第一个字段
 
awk -F: '{if($1!="mail"){print$1}}' /etc/passwd#如果第一个段不等于mail,输出该行第一个字段
 
awk -F: '{if($3>100){print$1}}' /etc/passwd #如果第三个字段大于100,输出该行第一个字段
 
逻辑运算符
&&
awk -F: '{if($1~/mail/&&$3>1){print$1}}' /etc/passwd#如果该行的第一个字段为mail,并且第三个字段大于1,输出该行的第一个字段
 
awk -F: '{if($1~/mail/||$3>100){print$1}}' /etc/passwd#如果该行的第一个字段为mail,或者第三个字段大于100,输出该行的第一个字段
 
数值运算
awk -F: '{if($3>1&&$3<100){print$1}}' /etc/passwd#输出字段3大于1小于100行的第一个字段
awk -F: '{if($3+$4==7){print$1}}' /etc/passwd#如果该行字段3和字段4的和为7,输出该行的第一个字段
减法,乘积,除法等类似
 
 
posted @ 2021-06-30 22:16  雪竹子  阅读(4283)  评论(0编辑  收藏  举报