如何使用awk的比较操作符

对于使用 awk 命令的用户来说,处理一行文本中的数字或者字符串时,使用比较运算符来过滤文本和字符串是十分方便的。下面的部分我们介绍"awk"的比较运算符。

awk 中的比较运算符用于比较字符串和或者数值,包括以下类型:

符号 作用
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
some_value ~ / pattern/ 如果 some_value 匹配模式 pattern,则返回 true
some_value !~ / pattern/ 如果 some_value 不匹配模式 pattern,则返回 true

现在我们通过例子来熟悉 awk 中各种不同的比较运算符。

例子一,我们有一个文件名为 food_list.txt 的文件,里面包括不同食物的购买列表。我想给食物数量小于或等于 30 的物品所在行的后面加上 (**)

 File – 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

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 的行。

再举一个例子:

# 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

在这个例子中,我们想通过在行的末尾增加 (TRUE) 来标记数量小于等于20的行。

总结

这是一篇对 awk 中的比较运算符介绍性的指引,因此你需要尝试其他选项,发现更多使用方法。

如果你遇到或者想到任何问题,请在下面评论区留下评论。请记得阅读 awk 系列下一部分的文章,那里我将介绍组合表达式。

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-07-29 12:45:51

如何使用awk的比较操作符的相关文章

awk表达式和操作符

awk的表达式和操作符 +       加 -       减 *       乘 /       除 %       取于 ^       幂运算 ++ 自加1 -- 自减1 += 相加后赋值给变量(x+=9等同与x=x+9) -=      相减后赋值给变量(x-=9等同与x=x-9) *=      相乘后赋值给变量(x*=9等同与x=x*9) /= 相除后赋值给变量(x/=9等同与x=x/9) > 大于 < 小于 >=      大于等于 <=      小于等于 ==  

awk命令详解二

awk命令详解 简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 1.   调用awk: 第一种命令行方式,如: awk [-Field-separator] 'commands' input

awk用法详解

awk简介 awk是一款文本处理工具,awk为文本处理提供了非常强大的功能,包括正则表达式的匹配,样式装入,程序的流程控制,数学运算,还包括了内置函数和变量.它完全可以作为一门独立的语言进行编程. 基本语法: awk [options] 'pattern{ action }' file file ... awk对文本的处理是以行为单位的,按行读取数据后再对每个字段进行处理. awk的大致工作流程如下: 1)首先读入第一行,然后将每个字段进行切割并赋值给$0,$1,$2,$3.....(默认分隔符

awk字段和引用的分离

awk使用字段操作符$来指定字段.在该操作符后面跟着一个数字或变量,用于标识字段的位置."$1" 表示第一个字段, "$2" 表示第二个字段等等."$0 "表示整个输入记录.下面的例子显示了第一个字段是姓,第二个字段是名字,后面是电话号码. $ awk '{ print $2,$1,$3 }' names Robinson John 666-555-1111 $1表示名字, $2表示姓,而$3表示电话号码.Print语句中分隔每个参数的逗号使得输

awk命令详解

简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 1.   调用awk: 第一种命令行方式,如: awk [-Field-separator] 'commands' input-file(s)

Linux文本三剑客之awk的使用

文本处理三剑客: grep.egrep.fgrep:称为文本过滤工具 sed:称为流编辑器,行编辑器 awk:称为报告生成器,主要用于格式化文本输出 awk:Aho,Weinberher,Kernighan 由这个三个作者创建而成,最初是用在UXIN系统上面,后来被GNU组织不断对其进行更新,就形成了gawk,现在linux上用的都是gawk. [[email protected] tmp]# which awk /bin/awk [[email protected] tmp]# ll -d /

浅谈awk的基本用法

awk 1.域和记录: 取第一域,并在开头和结尾加字符begin和end 通常使用BEGIN来显示变量和预置变量,使用END来输出最终结果. awk  ' BEGIN  {print "being"}  {print $1}  END  {print "end"}'   file 2.条件操作符: 第一字域,包含expect,就打印整行 awk '{if($1~/expect/) print $0}' c.sh 或者 awk '$1~/expect/{print $

漫漫运维路——文本处理三剑客之awk基础

awk即gawk,是一款在Linux中实现文本格式化输出的文本处理工具,在Linux中与文本过滤工具grep和文本行编辑器sed共同组成Linux中的文本处理三剑客. awk在处理文本时以行为单位,读入整行数据后以指定的分隔符对行进行切片,然后再针对切片后的数据进行处理.如下图所示: 文本经过指定的分隔符进行切片后再对每一片进行处理,然后在根据设定的动作对处理后的文本执行动作,而切片后的文本如果只想引用一部分也可以使用变量进行引用,其引用的各个变量如下表所示: 变量 指代 $0.$N 当前处理行

awk详解

一.awk简介 awk的意思是报告生成器,能根据输入信息,把信息格式化后显示,继而出现new awk(nawk)在windows上实现,gawk,awk实现在linux上.awk是一种编程语言,在linux/unix下对文本和数据进行处理,是一款强大编程工具.在命令行中使用,更多作为脚本来使用. awk处理文件和数据的方式:逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行操作.如果没有指定处理动作,则把匹配行打印,如果没有指定模式,则所有行都处理.gawk是awk的GN