awk 匹配案例

awk -F":" '{if($1~/root/) print $1}' /etc/passwd 打印包含root的行
awk -F":" '/root/{print $1}' /etc/passwd 匹配root,並打印第一列
awk -F":" '$4==100 {print $0}' /etc/passwd 打印第四列等於100的行
awk -F":" '$1 !~ /root/ {print $0}' /etc/passwd 打印不包含root的行
awk -F":" '$1 != “root” {print $0}' /etc/passwd 打印第一列不等於root的行
awk -F":" '$3 < $4 {print $0}' /etc/passwd 如果第三列小於第四列,則打印此行
awk -F":" '$3 + $4 == 155 {print $0}' /etc/passwd 匹配兩列之和爲155
awk -F":" ' {print $3,$4,"Total is:"$3 + $4 }' /etc/passwd 打印兩列相加結果
awk '/[Rr]oot/' /etc/passwd 區配某字段
awk '/^...s/' /etc/passwd 抽取名字,其記錄第一域的第四個字符是a,使用句點.。表達式/ ^ . . . a /意爲行首前三個字符任意,第四個是a,尖角符號代表行首
awk '/(root|net|ucp)/' /etc/passwd 匹配包含root或net或ucp的任意行
awk '/^[0-9]/' group.txt 匹配以數字開頭的行
awk 'NR>0 && NR<10{print NR,$0}' passwd 打印0-10之間的行
awk -F: 'NF>7 {print NF,$0}' passwd 打印大於7列的行
awk -F: '{if (NF==8 && NR==31)print NR,$1}' passwd 如果第31行超過8列,就打印這一行的第1列
awk 'gsub(/root/,"admin") {print $0}' passwd 將包含/root的字段替換爲admin
awk -F: 'length($1)==4 {print $0,length($1)}' passwd 如果第一列長度爲4則打印此行
awk '$3==day {print $0}' day=`date +%d` /tmp/te.log 將命令傳給awk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章