游乐游手机版
首页/系统平台/文章详情

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

时间:2026-06-23 07:46
对于经常处理文本内容的运维工程师或数据分析人员而言,awk 几乎是一项必备技能。在 awk 的众多操作中,比较运算符是最常用也最基础的一类——它们能帮助你快速过滤出符合特定数值或字符串条件的行。接下来我们直接切入正题,详细解析 awk 提供了哪些比较运算符,以及在实际工作场景中如何高效运用它们。 a

对于经常处理文本内容的运维工程师或数据分析人员而言,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
上一篇CentOS 7 LVM如何添加硬盘并扩容 下一篇CentOS 7安装后的实用优化与配置详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送