歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 如何使用awk的比較操作符

如何使用awk的比較操作符

日期:2017/3/6 9:16:00   编辑:學習Linux

如何使用awk的比較操作符


如何使用awk的比較操作符


導讀對於使用 awk 命令的用戶來說,處理一行文本中的數字或者字符串時,使用比較運算符來過濾文本和字符串是十分方便的。下面的部分我們介紹"awk"的比較運算符。awk 中的比較運算符是什麼?

awk 中的比較運算符用於比較字符串和或者數值,包括以下類型:

符號作用>大於<小於>=大於等於<=小於等於==等於!=不等於some_value ~ / pattern/如果 some_value 匹配模式 pattern,則返回 truesome_value !~ / pattern/如果 some_value 不匹配模式 pattern,則返回 true

現在我們通過例子來熟悉 awk 中各種不同的比較運算符。

例子一,我們有一個文件名為 food_list.txt 的文件,裡面包括不同食物的購買列表。我想給食物數量小於或等於 30 的物品所在行的後面加上 (**)

 File – food_list.txtNo      Item_Name               Quantity        Price1       Mangoes                    45           $3.452       Apples                     25           $2.453       Pineapples                 5            $4.454       Tomatoes                   25           $3.455       Onions                     15           $1.456       Bananas                    30           $3.45

Awk 中使用比較運算符的通用語法如下:

 # 表達式 { 動作; }

為了實現剛才的目的,執行下面的命令:

 # awk '$3 <= 30 { printf "%s/t%s/n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txtNo  Item_Name`      Quantity    Price1   Mangoes            45       $3.452   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    Price1     Mangoes          45       $3.452     Apples           25       $2.453     Pineapples        5       $4.45 TRUE4     Tomatoes         25       $3.455     Onions           15       $1.45 TRUE6     Bananas          30       $3.45

在這個例子中,我們想通過在行的末尾增加 (TRUE) 來標記數量小於等於20的行。

總結

這是一篇對 awk 中的比較運算符介紹性的指引,因此你需要嘗試其他選項,發現更多使用方法。

如果你遇到或者想到任何問題,請在下面評論區留下評論。請記得閱讀 awk 系列下一部分的文章,那裡我將介紹組合表達式。

原文來自:https://linux.cn/article-7602-1.html

轉載地址:http://www.linuxprobe.com/awk-comparison-operator.html


http://xxxxxx/Linuxjc/1155952.html TechArticle

Copyright © Linux教程網 All Rights Reserved