使用awk的比较操作符的方法awk的用法和操作




使用awk的比较操作符的方法awk的用法和操作

2022-07-20 21:03:27 网络知识 官方管理员

对于使用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

NoItem_NameQuantityPrice

1Mangoes45$3.45

2Apples25$2.45

3Pineapples5$4.45

4Tomatoes25$3.45

5Onions15$1.45

6Bananas30$3.45

Awk中使用比较运算符的通用语法如下:

#表达式{动作;}

为了实现刚才的目的,执行下面的命令:

#awk'$3<=30{printf"%s/t%s/n",$0,"**";}$3>30{print$0;}'food_list.txt

NoItem_Name`QuantityPrice

1Mangoes45$3.45

2Apples25$2.45**

3Pineapples5$4.45**

4Tomatoes25$3.45**

5Onions15$1.45**

6Bananas30$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

NoItem_NameQuantityPrice

1Mangoes45$3.45

2Apples25$2.45

3Pineapples5$4.45TRUE

4Tomatoes25$3.45

5Onions15$1.45TRUE

6Bananas30$3.45

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

总结

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


发表评论:

最近发表
网站分类
标签列表