国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

使用awk的比較操作符的方法

2020-07-08 12:42:12
字體:
來源:轉載
供稿:網友

對于使用 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 中的比較運算符介紹性的指引,因此你需要嘗試其他選項,發現更多使用方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福贡县| 迁安市| 新干县| 于都县| 洪湖市| 张家口市| 安化县| 定南县| 滦平县| 苗栗县| 维西| 威信县| 客服| 闽侯县| 宜宾县| 尚义县| 阆中市| 海门市| 崇仁县| 常山县| 望奎县| 扬中市| 林甸县| 登封市| 营山县| 博乐市| 仙游县| 桃园市| 广汉市| 繁昌县| 汽车| 浏阳市| 綦江县| 清水县| 上杭县| 松阳县| 靖西县| 德州市| 万宁市| 罗江县| 延长县|