Chinaunix

标题: 【请问】awk中RT的用法 [打印本页]

作者: 10230457    时间: 2009-07-02 10:34
标题: 【请问】awk中RT的用法
现有文本内容如下:
hahaha
helloworld
hahaha
welcome to the world
hahaha
helloworld
对它分别运行命令:
1. awk 'BEGIN{RS="hahaha\\n"}/^hello/{print RT}' filename
输出为:
hahaha


2. awk 'BEGIN{RS="hahaha\\n"}/^hello/{print s}{s=RT}' filename
输出为:
hahaha

hahaha

我看了一下awk user's guide上面对RT的解释,但是还是不太理解。为什么上面命令1和命令2的输出会产生这样的差别啊?我查了一下资料,RT的使用似乎命令2的用法更常见,请帮我把命令2中{print s}{s=RT}讲解一下,我是新手,麻烦大家了,谢谢。
作者: blackold    时间: 2009-07-02 10:45
标题: 回复 #1 10230457 的帖子
第一个命令输出的是当前记录RT, 第二命令输出的是前一记录RT。
作者: jakepain    时间: 2009-07-02 11:11
标题: 回复 #2 blackold 的帖子
今天才知道有RT
有点不明白
最后一行的RT"\n",RS不是已经设置"hahaha\\n"了吗?
黑哥有空解释一下
谢谢
作者: blackold    时间: 2009-07-02 11:23
标题: 回复 #3 jakepain 的帖子
在确定记录的终止后gawk才设置RT。

RT是gawk扩展。

[ 本帖最后由 blackold 于 2009-7-2 11:43 编辑 ]
作者: ztj2247    时间: 2010-06-18 15:52
第一个命令输出的是当前记录RT, 第二命令输出的是前一记录RT。
blackold 发表于 2009-07-02 10:45



    {s=RT}这个方法绝了啊 黑哥真牛
作者: laohuanggua    时间: 2010-06-19 07:42
马克一下
作者: expert1    时间: 2010-08-19 10:08
http://bbs.chinaunix.net/viewthread.php?tid=1496425
学习下RT用法




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2