awk脚本编写

awk分为BEGIN部分,正则匹配部分,END部分三部分。

我一般在BEGIN部分定义一些变量,正则部分用于匹配和执行一些解析和统计,END部分用于输出结果。

总体结构:

awk 'BEGIN{xxxx;xxxx;}{xxxx;xxxx;} /匹配字符串/{xxxx;xxxx;} END{xxxx;xxxx;}' 待处理的输入文件
或
其他命令的结果 | awk 'BEGIN{xxxx;xxxx;}{xxxx;xxxx;} /匹配字符串/{xxxx;xxxx;} END{xxxx;xxxx;}' 

例如:

1、使用过程中难点主要是对不同行做不同的解析和输出处理:

http://bbs.chinaunix.net/thread-4186958-1-1.html

2、

awk '{print NR}' filename; //打印行号

awk ‘{print $0}' filename;  //打印整行

3、if语句

[chengmo@localhost nginx]# awk 'BEGIN{ 
test=100;
if(test>90)
{
    print "very good";
}
else if(test>60)
{
    print "good";
}
else
{
    print "no pass";
}
}'

very good

更多的if/for/while/do操作:

https://www.cnblogs.com/chengmo/archive/2010/10/04/1842073.html

4、awk的变量(包括数组)不需要声明可以直接使用

https://www.cnblogs.com/pangbing/p/7015745.html

5、awk中判断字符长度: length(变量名)

http://bbs.chinaunix.net/thread-271694-1-1.html

猜你喜欢

转载自www.cnblogs.com/zealousness/p/9437529.html