awk比较操作符的各种使用方法及实例详解
对于经常处理文本内容的运维工程师或数据分析人员而言,awk 几乎是一项必备技能。在 awk 的众多操作中,比较运算符是最常用也最基础的一类——它们能帮助你快速过滤出符合特定数值或字符串条件的行。接下来我们直接切入正题,详细解析 awk 提供了哪些比较运算符,以及在实际工作场景中如何高效运用它们。
awk 比较运算符的基本概念
awk 中的比较运算符用于比较字符串和数值,基本覆盖了日常需求中的所有比较场景。具体整理如下:
符号 – 作用
> – 大于
< – 小于
>= – 大于等于
<= – 小于等于
== – 等于
!= – 不等于
some_value ~ /pattern/ – 如果 some_value 匹配模式 pattern,返回 true
some_value !~ /pattern/ – 如果 some_value 不匹配模式 pattern,返回 true
光看列表可能不够直观,我们直接结合具体数据,跑一遍示例就清楚了。
假设有一个文件 food_list.txt,记录了若干种食物的购买信息:
No Item_Name Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 3 Pineapples 5 $4.45 4 Tomatoes 25 $3.45 5 Onions 15 $1.45 6 Bananas 30 $3.45
现在希望给那些数量小于或等于 30 的物品所在行的末尾加上 (**)。awk 中使用比较运算符的通用语法是:
# 表达式 { 动作; }
实际执行的命令如下:
awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt
输出结果:
No Item_Name Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 ** 3 Pineapples 5 $4.45 ** 4 Tomatoes 25 $3.45 ** 5 Onions 15 $1.45 ** 6 Bananas 30 $3.45 **
这里有两个关键点:第一个表达式组合 $3 <= 30 { printf "%s\t%s\n", $0,"**" ; } 负责把数量小于等于 30 的行打印出来,并在末尾添加 **,其中 $3 代表每行的第三个字段(即数量)。第二个表达式组合 $3 > 30 { print $0 ;} 则原样输出数量大于 30 的行。
再换一个条件演示。这次我们想标记数量小于等于 20 的行,在末尾加上 TRUE:
awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20 { print $0 ;}' food_list.txt
输出结果:
No Item_Name Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 3 Pineapples 5 $4.45 TRUE 4 Tomatoes 25 $3.45 5 Onions 15 $1.45 TRUE 6 Bananas 30 $3.45
可以看到,第 3 行和第 5 行因为数量分别是 5 和 15,满足 ≤20 的条件,所以被标记为 TRUE;其他行则原样显示。
总结
以上就是 awk 比较运算符的基础用法,涵盖了日常工作中最常见的几种比较场景。当然,实际应用时还可以组合 &&、|| 等逻辑运算符,或者配合模式匹配实现更复杂的过滤与条件处理。建议你拿手边的数据文件多尝试几次,很快就能掌握 awk 条件过滤的规律,从而提升 Linux 文本处理效率。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Win11频繁断网提示默认网关不可用怎么办
先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址
Mac如何取消正在进行的系统备份任务
Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退
电脑显示器刷新率锁死60Hz无法调整的解决方法
显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。
Linux系统下Systemd服务管理从零开始方法步骤详解完整教程
systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。
Mac如何取消同步iPhone书签和历史记录
彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-03 07:44
2026-07-03 07:44
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:42
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

