awk [-field-separator] 'commands' input-file(s) ...
- awk [-field-separator] 'commands' input-file(s)
基本模式
- awk -F':' ...
使用#分隔
- awk '{print $0}' a.txt
列印全部
- awk '{print $1,$3}' a.txt
列印第1、3列
- awk 'BEGIN{print "0"}{print $1}' a.txt
第一行列印0
- awk '{print $1}END{print "0"}' a.txt
最後一行列印0
- awk '$1 == "0" {print $0}' a.txt
第一列等於0的行
- awk '$1!="0" {print $0}' a.txt
第一列不等於0的行
- awk '$1<=$2'
第一列小於等於第二列的行
- awk '$0!~/0/' a.txt
正則匹配所有列不含0的行
- awk '$1~/(12|(34)/' a.txt
正則匹配第一列匹配12或34的行
- awk 'if($1>1 && $2<1) {print $1} a.txt
第一列大於1且第二列小於1的行的第一列
- awk 'if($1>1 || $2<1) {print $2} a.txt
第一列大於1或第二列小於1的行的第二列
- awk '{print NF RS NR}' a.txt
連續列印記錄列數、記錄分隔符、已讀記錄數
- awk 'NR==FNR {print $1} NR>FNR {print $2}' a.txt b.txt
列印第一個文件的第一列和第二個文件的第二列
- awk '{$1=$1*2; print $1}' a.txt
修改數值列印
- awk 'BEGIN{LAST=0} {if($1>LAST) print $1; LAST=$1}'
逐個比較列印遞增數列
- awk '{total+=$1} END {print total}' a.txt
統計列值
- awk '{printf "%c", $1}' a.txt
格式化輸出
- awk '{print match($1, "1")}' a.txt
列印第一列第一個1的位置,沒有列印0
- awk '{gsub(/ab/,"cd",$1); print $0}' a.txt
第一列字元串替換
- awk '{MAP[$1]=$2} END {for(I in MAP){print I, MAP[I]} }' a.txt
字典存儲和提取