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

支付宝赞赏

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步