Saturday, December 1, 2012

awk tips

AWK学习笔记
awk的命令形式:awk [options] 'script' var=value file(s)
其中的script由模式命令组成:pattern {action} 如$ awk '/root/' test,或$ awk '$3 < 100' test。


模式可以是以下任意一个:
  • /正则表达式/:使用通配符的扩展集。
  • 关系表达式:可以用下面运算符表中的关系运算符进行操作,可以是字符串或数字的比较,如$2>%1选择第二个字段比第一个字段长的行。
  • 模式匹配表达式:用运算符~(匹配)和~!(不匹配)。
  • 模式,模式:指定一个行的范围。该语法不能包括BEGIN和END模式。
  • BEGIN:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。
  • END:让用户在最后一条输入记录被读取之后发生的动作。

    awk '$9 > 100 {print substr($2,14,9) "\t" $9}' demo.txt