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