Shell脚本,awk条件判断与逻辑比较&&,||

本文介绍了如何使用Shell脚本和awk进行条件判断,包括正则表达式的匹配与不匹配,数值和字符串的比较,以及逻辑与(&&)和逻辑或(||)的使用。通过实例展示了如何筛选和打印文件中特定行和列的内容,帮助读者掌握awk在数据处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell脚本,awk条件判断if与逻辑比较&&,||

O、条件判断解决的一些问题:
1、输出所有行还是部分行,
2、输出行的部分数据内容,
3、设置多个条件

语法:
awk [选项]’[条件]{指令}’ dir
条件可以填写:正则表达式,数值/字符比较,逻辑比较

一、正则
~匹配,!~不匹配
1、awk ‘/^ro/{print $1,$7}’ dir
以:为分割符,打印文件中包含以ro开头的内容行的第一列和第七列

在这里插入图片描述

2、awk -F: ‘$7!~/bash$/{print $1,$7}’ dir
以:为分割符,指定文件中第七列不是以bash结尾的行,打印其第一列和第七列

在这里插入图片描述

3、awk -F: ‘$7~/bash$/{print $1,$7}’ dir
以:为分割符,指定文件中第七列是以bash结尾的行,打印其第一列和第七列,如果列数$后面没有~接正则就会报语法错。

在这里插入图片描述

二、数值,字符串比较,像if但是省略了if
==等于,!=不等于,>大于,>=大于等于,<小于,<=小于等于

1、awk ‘NR==2{print}’ dir
打印行号为2的行的内容

在这里插入图片描述

2、awk -F: ‘$7!="/bin/bash"’ dir
以:为分隔符,打印第七列字符串不为"/bin/bash"的行的所有行内容

在这里插入图片描述

3、awk -F: ‘$3>=1000{print $1}’ dir
以:为分隔符,打印第三列数字大于等于1000的行内容的第一列

在这里插入图片描述

4、awk ‘NR%2==0’ dir
打印指定文件偶数行的所有行内容

在这里插入图片描述

三、、逻辑比较
&&逻辑与
awk -F: ‘$3>=0&&$3<2{print $1,$3}’ /etc/passwd
以:为分隔符,打印第三列数字大于等于0,且小于2的行的第一列和第三列信息。

在这里插入图片描述

||逻辑或
awk -F: ‘$30||$32{print $1,$3}’ /etc/passwd
以:为分隔符,打印第三列数字等于0,或者等于2的行的第一列和第三列信息。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值