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,输出该行的第一个字段
减法,乘积,除法等类似
喜欢请赞赏一下啦^_^
微信赞赏
支付宝赞赏