awk使用
sed -n '/queryAll2/p' 2017-02-20.log | awk -F ',' '{print $2}'| awk -F ' ' '{if (($1 >=13 && $2 =="Mar")) print $0 }' | wc -l
awk ' BEGIN {size=0;} {size=size+$5;} END {print " [end] size is ", size} '
awk -F ',' '{ print $2 }'
if 语句: C格式
if(expression) {
statement;}
awk -F ':' ' BEGIN {count=0;} {name[count] = $1;count++;}; END {for (i = 0; i < NR; i++) print i, name[i]} ' filename
其他用法:
非精确匹配:
awk ' $1~/man/{print $0} ' filename
输出第1列中的字符串 含有man的 那行记录;
精确匹配:
awk ' $1 == "man" filename
批量修改:
awk ' { if($1~/man/) { $1 ="WOMAN" print $0 } } '
该例调用了awk内置函数gsub(r,s),匹配正则表达式~/man/ 替换;
附:内置常量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行-F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
将所有的awk命令插入一个单独文件,然后调用:awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的