LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1842|回复: 2

awk程序中的begin与end模块

[复制链接]
发表于 2003-12-1 19:40:56 | 显示全部楼层 |阅读模式
看了许多awk程序,发现有的中有begin模块,有的中有end模块,好象没有任何规律、原则之类的,是怎么回事,这两个模块是用来干嘛的,多谢
发表于 2003-12-1 22:16:58 | 显示全部楼层
在awk编程中,
BEGIN模式后面跟一个操作模块,如:BEGIN{...},在awk处理输入文件里的任意行之前执行该模块,其实不用任何输入文件就能测试一个BEGIN操作模块,因为直到BEGIN操作模块完成之后,awk才开始读取输入.BEGIN操作通常用来改变OFS,FS,RS等awk内制变量的值.
如:
awk 'BEGIN{FS=":";OFS="\t";ORS="\n"}{print $0}' filename
在处理输入文件之前,把域分隔符FS设定成冒号,输出域分隔符OFS设定成TAB键,并把输出记录分隔符ORS设定成一个换行符.

END模式不于任何输入行匹配,但是执行任何与END模式相关的操作.在所有输入行处理完成之后在处理END模式.
如:
awk 'END{print "some strings" NR }' filename
在awk处理完成文件后再执行END模块,NR的值是度入的最后一条记录号.

以上是对这俩个模块的简单解释!
 楼主| 发表于 2003-12-1 22:25:57 | 显示全部楼层
多谢老大,还有一点点不明白 ,我再想想,

thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表