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.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 "%st%sn", $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 「%st%sn」, $0,」**」 ; }列印出數量小於等於30的行,並且在後面增加(**)。物品的數量是通過$3這個域變數獲得的。 - 第二個「表達式 {動作;}」組合中,
$3 > 30 { print $0 ;}原樣輸出數量小於等於30的行。
再舉一個例子:
# awk '$3 <= 20 { printf "%st%sn", $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 系列下一部分的文章,那裡我將介紹組合表達式。
via: http://www.tecmint.com/comparison-operators-in-awk/
作者:Aaron Kili 譯者:chunyang-wen 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
對這篇文章感覺如何?
太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
More in:Linux中國
捐贈 Let's Encrypt,共建安全的互聯網
隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
Let's Encrypt 正式發布,已經保護 380 萬個域名
由於 Let's Encrypt 讓安裝 X.509 TLS 證書變得非常簡單,所以這個數量增長迅猛。
關於Linux防火牆iptables的面試問答
Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
Lets Encrypt 已被所有主流瀏覽器所信任
旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...

















