学习awk的点点滴滴

========================================
1、 模式
1.1 简单
1.1.1BEGIN
1.1.2END
1.1.3表达式:
1)正则表达式:~匹配;!~不匹配。
2)算术表达式:
x^y x的y次幂
x**y 同上
x%y 计算x/y的余数(求模)
x+y x加y
x-y x减y
x*y x乘y
x/y x除y
-y 负y(y的开关符号);也称一目减
++y y加1后使用y(前置加)
y++ 使用y值后加1(后缀加)
--y y减1后使用y(前置减)
y-- 使用后y减1(后缀减)
x=y 将y的值赋给x
x+=y 将x+y的值赋给x
x-=y 将x-y的值赋给x
x*=y 将x*y的值赋给x
x/=y 将x/y的值赋给x
x%=y 将x%y的值赋给x
x^=y 将x^y的值赋给x
x**=y 将x**y的值赋给x
3)关系表达式:> ;>=; < ;<=;==;!= ;
4)逻辑表达式:!;&&;||;
1.1.4无
1.2 范围 是由两个由逗号分隔的简单模式组成。如:start-pattern,end-pattern

2.动作
2.1 表达式语句
2.2 输出语句:print;printf();sprintf(用格式化打印一个或多个字段到一个字符串中)
2.3 判定语句:if-else
2.4 控制动作:next 读取下一条记录,返回主体开始处;
getline 与next类似只是不返回主体开始处,有返回值:0结尾,1成功,-1;getline variable<file
exit
2.5 循环 while(test) {...};for (Initial;Bound test;Update){...};do {...} while(test);

3.关联数组
3.1 数组循环: for (index_var in array_name)
if (index_var in array_name)
3.2 删除数组:delete array_name[index]
经典:awk '{ {s[NR] = substr($2, 33, 5) } {if ( /Last Trade/ ) j=NR } } END { print s[j+1] }' page

posted @ 2007-10-22 09:26  dbblog  阅读(132)  评论(0编辑  收藏  举报