当前位置: 首页
系统平台
awk比较操作符的各种使用方法及实例详解

awk比较操作符的各种使用方法及实例详解

热心网友 时间:2026-06-23
转载

对于经常处理文本内容的运维工程师或数据分析人员而言,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 文本处理效率。

来源:https://www.jb51.net/os/RedHat/532461.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Win11频繁断网提示默认网关不可用怎么办

Win11频繁断网提示默认网关不可用怎么办

先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址

时间:2026-07-03 07:44
Mac如何取消正在进行的系统备份任务

Mac如何取消正在进行的系统备份任务

Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退

时间:2026-07-03 07:44
电脑显示器刷新率锁死60Hz无法调整的解决方法

电脑显示器刷新率锁死60Hz无法调整的解决方法

显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。

时间:2026-07-03 07:43
Linux系统下Systemd服务管理从零开始方法步骤详解完整教程

Linux系统下Systemd服务管理从零开始方法步骤详解完整教程

systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。

时间:2026-07-03 07:43
Mac如何取消同步iPhone书签和历史记录

Mac如何取消同步iPhone书签和历史记录

彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。

时间:2026-07-03 07:43
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜