awk文本分析工具
Usage:awk [option] 'program' file ...
awk [option] -f progfile file ...
[optin]:
-F fs 指定输入分隔符,fs可是字符串或者正则表达式;
-v var=value 赋值给var,将外部变量传给awk;
-f script 从外部脚本读取awk命令;
awk 'BEGIN{ print start }pattern{ commands }END{ print end }' file,一个program应有BEGIN、命令语句、END组成,三部分都是可选的,脚本通常写在单引号或双引号中;
内置变量:
$n:表示当前第n个字段,$0:表示当前文本内容;
FS:输入字段分隔符;
OFS:输出字段分隔符;
RS:输入记录分隔符;
ORS:输出记录分隔符;
ARGC:命令行参数个数;
NF:字段数量;
NR:行号;
FILENAME:当前文件名;
FILENAME:当前文件名;
控制语句:
1、if-else
if(表达式) {语句1} else if(表达式) {语句2} else {语句3}
每条命令语句后面可以用分号结尾,
awk 'BEGIN{ test=100; if(test>=90){ print "very good"; } else if(test>60){ print "good"; } else{ print "no pass"; } }'
echo "say:hello" | awk -F: 'BEGIN{ status=0 }{ if($2!="hello") status=1 }END{ print status }';
以:为分隔符,赋值status=0,如果$2不等于hello,那么status=1,显示出status;