格式
gawk options program file
Options:
* -F fs
* -f file
* -v var=value
* -mf N
* -mr N
* -W keyword
*
gawk程序用一对花括号来定义
gawk默认的字段分隔符是任意的空白字符
$0、$1、$2...的含义
gawk变成语言允许将多条命令组合成一个正常的程序,用冒号分开
在处理数据前运行脚本使用BEGIN
在处理数据后运行脚本使用END
Example
$ gawk '{print "Hello, TankyWoo"}'
$ gawk -F: '{print $1}' /etc/passwd
$ echo "My name is TankyWoo" | gawk '{$4="TK"; print $0}'
$ cat myscript
{ print $1 "'s home dir is " $6 }
$ gawk -F: -f myscript /etc/passwd
$ gawk 'BEGIN {print "Hello World"}'
$ cat mydata
Line 1
Line 2
Line 3
$ gawk 'BEGIN { print "The data fileL"} { print $0 }' mydata
p
$ gawk 'BEGIN { print "The data fileL"} { print $0 }\
END { print "End of File"}' mydata
常用命令
筛选第N个字段包含某某字符串的行
# 搜索/var/log/nginx/access_log日志中第三列包含error字符串的行
$ awk '($3 ~ /error/)' /var/log/nginx/access_log