Chinaunix首页 | 论坛 | 博客
  • 博客访问: 334699
  • 博文数量: 115
  • 博客积分: 1019
  • 博客等级: 准尉
  • 技术积分: 1104
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 15:02
个人简介

别想万里,要把一只脚放到另一脚的前边

文章分类

全部博文(115)

文章存档

2018年(1)

2015年(2)

2014年(31)

2013年(38)

2012年(43)

我的朋友

分类: LINUX

2012-02-12 17:40:39

awk的运行过程
1)awk_script的组成:
①awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔
②awk_cmd由两部分组成:awk_pattern{actions}③awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来。
2)awk命令的一般形式:awk'BEGIN{actions}awk_pattern1{actions}.awk_patternN{actions}END{actions}'inputfile其中BEGIN{actions}和END{actions}是可选的。
3)awk的运行过程:①如果BEGIN区块存在,awk执行它指定的actions。②awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取)
③awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。⑥当awk读完所有的输入行后,如果存在END,就执行相应的actions。
4)iput_file可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。
5)一条awk_cmd的awk_pattern可以省略,省略时不对输入记录进行匹配比较就执行相应的actions。一条awk_cmd的actions也可以省略,省略时默认的动作为打印当前输入记录(print$0)。一条awk_cmd中的awk_pattern和actions不能同时省略。6)BEGIN区块和END区块别位于awk_script的开头和结尾。awk_script中只有END区块或者只有BEGIN区块是被允许的。如果awk_script中只有BEGIN{actions},awk不会读取input_file。
7)awk把输入文件的数据读入内存,然后操作内存中的输入数据副本,awk不会修改输入文件的内容。
8)awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。
阅读(1142) | 评论(0) | 转发(1) |
0

上一篇:没有了

下一篇:sed 的几点初浅认识

给主人留下些什么吧!~~