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=100if(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;

原文地址:https://www.cnblogs.com/houyongchong/p/8510146.html