十三、awk 命令

awk 命令

截取文檔中的某段

#awk -F ':' {print$1} 1.txt    打印第一段

#awk  -F ':' 'OFS=‘#’ {print$1,$2,$3,$4} 1.txt 指定顯示結果的分隔符爲#  , 也可以使用自定義字符連接每個段 {print$1"#"$2}

匹配字符或字符串

#awk '/root/' 1.txt

針對某個段匹配

#awk -F ’:' $1 ~/oo/' 1.txt

多次匹配

#awk -F ':' /root/ {print $1,$3};$1~/test/;$3~/20/' 1.txt

改變某個段的值

#awk -F ':' '$1="root'" 1.txt 

數字計算,把第三段和第四段值相加,並賦予第七段

#awk -F'{OFS=":"}  {$7=$3+$4;print$0}' 1.txt

計算第三段的總和

#awk -F ':' '{(tot=tot+$3)};END{print tot}' 1.txt

if關鍵詞

#awk -F ':' '{if($1=="root")print$0}' 1.txt

內置變量NF段數,NR 行數’

打印20行以後的行

#awk 'NR>20' 1.txt

打印20行以後並且第一段包含‘ssh’的行

#awk -F ':' 'NR>20 && $1~ /ssh/' 1.txt


條件操作符<,>,==,!=,>=,<=

第三段爲0

#awk -F ':' ’$3=="0"' 1.txt


第三段大於等於500

#awk -F ':' ’$3>=500' 1.txt

說明,等比較數字時,不能加雙引號,如果寫成$3>="500" 就不符合要求了

第7段不是‘/sbin/nologin'

#awk -F ':' '$7!="/sbin/nologin"' 1.txt

第三段小於第四段

#awk -F ':' '$3<$4' 1.txt

第三段大於5,並且小於7

#awk -F ':' '$3>5 && $3<7' 1.txt

第三段大於5,或者第7段爲 '/bin/bash'

#awk -F ':' '$3>"5" || $7=="/bin/bash"' 1.txt


 擴展
awk 中使用外部shell變量 http://www.aminglinux.com/bbs/thread-199-1-1.html
awk 合併一個文件 http://www.aminglinux.com/bbs/thread-493-1-1.html
把一個文件多行連接成一行 http://www.aminglinux.com/bbs/thread-266-1-1.html
awk中gsub函數的使用 http://www.aminglinux.com/bbs/thread-200-1-1.html
awk 截取指定多個域爲一行 http://www.aminglinux.com/bbs/thread-224-1-1.html
過濾兩個或多個關鍵詞 http://www.aminglinux.com/bbs/thread-198-1-1.html
用awk生成以下結構文件 http://www.aminglinux.com/bbs/thread-5494-1-1.html
awk教程 http://www.cnblogs.com/emanlee/p/3327576.html 

awk用print打印單引號 http://www.aminglinux.com/bbs/thread-1738-1-1.html

合併兩個文件 http://www.aminglinux.com/bbs/thread-945-1-1.html


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