vi mytest
123 abc def e def
123 abc def e def
123 ABC DEF E DEF
456 ABC def E DEF
oiu 123
:awk '{print $2 "\t" $3 }' mytest
:awk '{print $2,$3 }' mytest
打印第2个和第3个域
: cat mytest |awk '/ABC/' mytest
包含ABC的行
: cat mytest |awk '/ABC|abc/' mytest
包含ABC或者abc的行
: awk '/a[rl]/ {print $1, $2}' mytest
打印匹配ar或者al的行的第一个域和第二个域
: cat mytest |awk '/[Aa]/' mytest
包含A或者a的行
: cat mytest |awk '/^123/' mytest
以123开头的行
: cat mytest| awk -F '@' ' { print $1 }' mytest
打印第一个域(以@分割)
cat mytest| awk -F ' ' ' /123/ { print $1 }' mytest
打印包含123的行得第一个域(空格分隔域)
: cat mytest |awk '$1 ~/12/ ' mytest
打印第一个域匹配12的行
cat mytest |awk '$5 ~/ef$/ {print $5}' mytest
对于以ef结尾的第五个域则打印
awk '$1 > 200||$4 > 100' mytest
第一个域大于200 或者第四个域大于100 则打印行
-F '#' (#为域的分隔符),默认空格为分隔符
/正则表达式/
正则表达式中 ^..(以..开头) ..$(以..结尾)
~(匹配) !~不匹配
结合sort uniq
cat cmgp_access_2009_01_16.log | awk -F'"' '{ print $14}' | sort | uniq -c (排序,并删除重复的行且打印重复次数)
76890 200
18731 206
2 304
25 404
1 500
转载于:https://my.oschina.net/u/1992157/blog/3008641