AWK是一種處理文本文件的語言,是一個強大的文本分析工具。之所以叫AWK是因為其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。
語法:
awk [選項參數] 'script' var=value file(s)
或
awk [選項參數] -f scriptfile var=value file(s)
基本用法:
用法一:
新建一個log.txt 文件
2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo
命令(格式):
awk '{[pattern] action}' {filenames} # 行匹配語句 awk '' 只能用單引號
(1)每行按空格或TAB分割,輸出文本中的1、4項
$ awk '{print $1,$4}' log.txt---------------------------------------------2 a3 likeThis's10 orange,apple,mongo
(2) 格式化輸出
$ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt---------------------------------------------2 a3 likeThis's10 orange,apple,mongo
?用法二:
awk -F #-F相當于內置變量FS, 指定分割字符
?使用","分割
$ awk -F, '{print $1,$2}' log.txt---------------------------------------------2 this is a test3 Are you like awkThis's a test10 There are orange apple
使用多個分隔符.先使用空格分割,然后對分割結果再使用","分割
$ awk -F '[ ,]' '{print $1,$2,$5}' log.txt---------------------------------------------2 this test3 Are awkThis's a10 There apple
?用法三:
awk -v ?# 設置變量
$ awk -va=1 '{print $1,$1+a}' log.txt---------------------------------------------2 33 4This's 110 11$ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt---------------------------------------------2 3 2s3 4 3sThis's 1 This'ss10 11 10s
?用法四:
awk -f {awk腳本} {文件名}
?
?