awk處理條件:
認識awk處理條件的設定
1.使用正則設定條件
-輸出以bash結尾的完整記錄(輸出整行)
# awk -f: 『/bash$/』 /etc/passwd
-輸出包含root的行
# awk -f: '/root/' /etc/passwd
-輸出root或者tom賬戶的使用者名稱和uid資訊
# awk -f: '/^(root|tom)/'
-輸出賬戶名稱包含oo的行,(第一 列包含oo)
# awk -f: '$1~/oo/' /etc/passwd
-輸出登入shell不以nologin結尾的使用者名稱和登入shell資訊。
# awk -f: '$7!~nologin$/' /etc/passwd
!~ :取反匹配
2.使用數值/字串比較設定條件
比較符號:==(等於) !=(不等於) >(大於)
=(大於等於) <(小於) <=(小於等於)
-輸出賬戶uid大於等於1000的賬戶名和uid的資訊
# awk -f: '$3>=1000' /etc/passwd
-輸出第三行
# awk -f: 'nr==3' /etc/ passwd
-輸出uid小於10的賬戶名和uid資訊
# awk -f: '$3<10' /etc/passwd
-輸出使用者名為「root」的行:
# awk -f: '$1=="root"' /etc/passwd
3.邏輯測試條件
-輸出賬戶uid大於10並且小於20的賬戶資訊:
# awk -f: '$3>10 && $3<20' /etc/passwd
輸出賬戶uid大於1000或者賬戶uid小於10的賬戶資訊:
# awk -f: '$3>1000 || $3<10' /etc/passwd
4.數**算
[root@xieqc ~]# awk 'begin'
1[root@xieqc ~]# awk 'begin'
10[root@xieqc ~]# awk 'begin'
7[root@xieqc ~]# awk 'begin'
5[root@xieqc ~]# awk 'begin'
6[root@xieqc ~]# awk 'begin'
6[root@xieqc ~]# awk 'begin'
7[root@xieqc ~]# seq 200 | awk '$1%3==0 end' //統計3的倍數的數量
66
-統計200以內3的倍數的數量
#seq 200 | awk 『$1%3==0 end』
awk過濾if分支結構:
if分支結構(雙分支、多分支)
1.單分支
統計/etc/passwd檔案中uid小於或等於1000的使用者個數:
# awk -f: '}end' /etc/passwd
統計/etc/passwd檔案中uid大於1000的使用者個數:
# awk -f: '}end' /etc/passwd
統計/etc/passwd檔案中登入shell是「/bin/bash」的使用者個數:
# awk -f: '}end' /etc/passwd
雙分支
分別統計/etc/passwd檔案中uid小於或等於1000、uid大於1000的使用者個數:
# awk -f: 'else}end' /etc/passwd
分別統計/etc/passwd檔案中登入shell是「/bin/bash」、 登入shell不是「/bin/bash」的使用者個數:
# awk -f: 'else} end' /etc/passwd
shell程式設計 awk基礎
語法格式 一awk begin patternend file name 二standard output awk begin patternend 基本格式 awk begin patternend begin 文字處理前所做的處理 pattern 對文字具體的處理 end 文字處理後所做的處理 ...
shell程式設計日記 02
第二 天 變數的賦值與輸出 昨天學了如何使用累加命令來實現乙個最簡單的指令碼,今天學習一下如何利用指令碼的變數來實現程式的資訊傳遞以及互動過程.1 不得不說的 echo 命令.echo 這個命令無論是在 linux 下,還是在 windows 下.都是有的.做為 stdout 上顯示資訊的命令.ec...
shell程式設計之awk命令詳解
shell程式設計之awk命令詳解 linux 本篇部落格主要介紹linux常用命令中的對文字和資料進行處理的命令awk的用法。awk命令 awk是一種程式語言,用於在linux unix下對文字和資料進行處理。資料可以來自標準輸入 stdin 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函...