shell文本過濾編程(三):awk之條件判斷

來源:互聯網
上載者:User

標籤:blog   使用   檔案   ar   2014   代碼   html   log   amp   

【著作權聲明:轉載請保留出處:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】
在之前grep章節中用到很多Regex,這一節將在awk條件操作中使用Regex。awk 允許使用Regex,根據Regex是否匹配當前行來選擇執行獨立代碼塊。
下面先給出awk的條件操作符:
<       小於
<=    小於等於
==   等於
!=     不等於
>     大於
>=    大於等於
~     匹配Regex
!~     不匹配Regex
這一節繼續使用上一節操作檔案
1. 匹配
我們如果想篩選只符合條件(比如只要組名為aln)的行,可以這樣寫:
## awk '$1~/aln/{print}' group_file1aln x 1001# awk'/aln/{print}' group_file1aln x 1001# awk '{if ($1 ~/aln/)print}' group_file1aln x 1001# awk '$1~/aln/'group_file1 //沒有具體動作(如print),可以不用花括弧,預設動作是列印所有匹配記錄。aln x 1001
         上面四種方法都是列印第一個域包含aln的行,同理!~操作符號使用方法相同。
2. 精確匹配
如果要精確匹配,可以使用==操作符。  例如:
# awk '$3 =="984"{print}' group_file1vboxusers x 984allen# awk '{if($3=="984")print}' group_file1vboxusers x 984allen# awk'$3=="984"' group_file1vboxusers x 984allen#
!=操作符號使用類似。
3. 大於
下面樣本使用如下被操作檔案:
# catgroup_file2wireshark x 987123usbmon x 986 999jackuser x 985 985vboxusers x 9841003 allenaln x 1001 787
以下樣本輸出滿足$3 > $4的行的組名稱:
# awk '{if($3>$4)print $1}' group_file2wiresharkaln# awk'$3>$4{print $1}' group_file2wiresharkaln
操作符號<=、>、>=使用類似。
4. 行首匹配
# awk'$1~/^....user/' group_file2jackuser x 985985vboxusers x 9841003 allen# awk '{if($1~/^....user/)print}' group_file2jackuser x 985985vboxusers x 9841003 allen 
awk 還允許使用布林運算子 "||"(邏輯與)和"&&"(邏輯或),以便建立更複合布林運算式,複合運算式即為模式間通過使用下述各運算式互相結合起來的運算式:
&& AND :語句兩邊必須同時匹配為真。
|| OR:語句兩邊同時或其中一邊匹配為真。
! 非求逆
5. 求與:
# awk'$1~/^....user/ && $3==985' group_file2jackuser x 985985# awk '{if($1~/^....user/ && $3 == 985)print}' group_file2jackuser x 985985
6. 求或
# awk '{if($1~/^....user/ || $3 == 1001)print}' group_file2jackuser x 985985vboxusers x 9841003 allenaln x 1001 787
7. 求非
# awk'!($1~/^....user/)' group_file2wireshark x 987123usbmon x 986 999aln x 1001 787


shell文本過濾編程(三):awk之條件判斷

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.