分类: LINUX
2009-05-23 01:35:20
gawk(GNU awk)工具是一种模式扫描和处理语言,它搜索一个或多个文件,以查看这些文件中是否存在匹配指定模式的记录(通常是文本)。每次发现时,它通过执行动作的方式处理文本。使用gawk可以生成报告或者过滤文本,gawk的很多结构来自C语言。
Gawk工具是UNIX awk的GNU版。为了方便起见,很多linux系统将/bin/awk链接到/bin/gawk,这样用户可以使用两者中的任何一个来运行程序。
gawk语法:
a、gawk [模式] [{动作}] 文件 #模式和动作直接在命令行给出
b、gawk –f gawk程序 文件 #模式和动作放在gawk程序中调用
注:gawk基本用法是找到文件中与模式相匹配的行,对其采取相应的动作。a为简单用法,b用于处理复杂一些的gawk功能。
模式和动作均为可选项。
若不指定模式,文件中的每一行都将被匹配;若不指定动作,gawk将对所有匹配行进行默认print操作,即输出到标准输出(屏幕)。后面的例子均以文件cars做为参数,文件中所有空白字符都由单个TAB组成(不包含任何空格)。
$ cat cars
plym fury 1970 73 2500 chevy malibu 1999 60 3000 ford mustang 1965 45 10000 volvo s80 1998 102 9850 ford thundbd 2003 15 10500 chevy malibu 2000 50 3500 bmw 325i 1985 115 450 honda accord 2001 30 6000 ford taurus 2004 10 17000 toyota rav4 2002 180 750 chevy impala 1985 85 1550 ford explor 2003 25 9500
缺省模式:一个最简单的gawk命令如下:
$ gawk ‘{print}’cars
…….
$ gawk ‘/chevy/’cars
$ gawk ‘/chevy/ {print $3, $1}’ cars
plym fury 1970 73 $ 2500chevy malibu 1999 60 $ 3000ford mustang 1965 45 $ 10000volvo s80 1998 102 $ 9850ford thundbd 2003 15 $ 10500chevy malibu 2000 50 $ 3500bmw 325i 1985 115 $ 450honda accord 2001 30 $ 6000ford taurus 2004 10 $ 17000toyota rav4 2002 180 $ 750chevy impala 1985 85 $ 1550ford explor 2003 25 $ 9500
http://licong.blog.51cto.com/542131/151976