收集云服务器优惠信息
记录云服务器使用心得

Linux系统通过Awk使用比较运算符和数据过滤示例演示

在处理一行文本中的数字或字符串值时,使用比较运算符过滤文本或字符串对于awk命令用户来说非常方便。在Awk系列教程中,本文将简单介绍如何使用比较运算符过滤文本或字符串。

如果你是一名程序员,或许已经非常熟悉比较运算符,但对于Linux新手用户可能还不太了解,所以接下来小编将进行简单解释。

Awk中的比较运算符是什么?

在深入了解如何在Awk中使用比较运算符之前,让我们首先了解什么是比较运算符。

比较运算符由编程语言中用于比较值的符号或关键字组成。在awk中,比较运算符经常用于比较数字或字符串的值,它们包括以下内容:

  • >:大于
  • <:少于
  • >=:大于或等于
  • <=:小于或等于
  • ==:等于
  • !=:不等于
  • some_value ~ / pattern/:如果some_value与模式匹配则为true
  • some_value !~ / pattern/:如果some_value与模式不匹配则为true

上面已经介绍了Awk中的各种比较运算符,接下来通过一些示例来更好的理解它们。

使用awk过滤数据

在此示例中,有一个名为food_list.txt的文件(内容如下),它是不同食品的购物清单,这里想通过在每行末尾添加(**)来标记数量小于或等于20的食品。

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中使用比较运算符的一般语法是:

expression { actions; }

为了实现上述目标,这里必须运行以下命令:

awk '$3 <= 20 {print $0 " (**)" } $3 > 20 {print $0}' food_list.txt

使用awk标记

以下是该命令的解释:

  • awk:此命令调用Awk文本处理实用程序。
  • ‘$3 <= 20 {print $0 ” (**)” }: 命令的一个条件,后面跟操作,它检查每行第三列中的值(数量)是否小于或等于20。如果条件为真,则打印整行($0)并在其后附加“(**)” 。
  • $3 > 20 {print $0} :命令的另一个条件,后面跟着一个操作,它检查每行第三列中的值(数量)是否大于20。如果条件为真,它会打印整行($0),不做任何修改。
  • food_list.txt:这是Awk命令将处理的输入文件,它包含将应用命令中指定的条件和操作的数据。

另一个示例是在数量小于或等于20的行末尾标记单词“( TRUE )”,命令如下:

awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20  { print $0 ;} ' food_list.txt

使用True打印行

在Awk中组合运算符

实际上,我们还可以组合多个比较运算符来创建更复杂的条件。例如,如果要过滤掉数量在20到50之间的食品,可以使用逻辑与运算符(&&),如下所示:

awk '$3 >= 20 && $3 <= 50' food_list.txt

按数量范围过滤食品

如上图所示,AWK命令将打印数量(第三列)介于20至50之间的行。

以上仅演示几个实例,Awk使用比较运算符和数据过滤的更多用法可以参考上述教程进行设置,也可以查看Awk命令帮助页面或查阅相关资料进行了解。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux系统通过Awk使用比较运算符和数据过滤示例演示》
文章链接:https://www.ecscoupon.com/6096.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!