免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1726 | 回复: 5
打印 上一主题 下一主题

getline;print 和getline A;print A 的输出结果不一致? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-12 17:42 |只看该作者 |倒序浏览
#cat w1
2009 01
124:20:09
2008 11
0:25:06
2008 11

#awk '/:/{print a;print;getline;print}{a=$0}' w1
2009 01
124:20:09
2008 11
2008 11
0:25:06
2008 11

#awk '/:/{print a;print;getline A;print A}{a=$0}' w1
2009 01
124:20:09
2008 11
124:20:09
0:25:06
2008 11

Variable 参数,则 $0 记录变量和 NF 特殊变量设置为从流读取的记录。
getline [ Variable ] 将 Variable 参数指定的变量设置为从当前输入文件读取的下一个输入记录。如果未指定 Variable 参数,则 $0 记录变量设置为该记录的值,还将设置 NF、NR 和 FNR 特殊变量。

不是太明白...

论坛徽章:
0
2 [报告]
发表于 2009-03-12 17:52 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2009-03-12 17:53 |只看该作者
不明..因为我只print A. A后面没有跟任何东西..
不存在覆盖...

[ 本帖最后由 Nikolai 于 2009-3-12 18:12 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-03-12 18:27 |只看该作者
很简单 getline A 你就把下行内容放进A了 如果是 getline 下行的内容放入$0

论坛徽章:
0
5 [报告]
发表于 2009-03-12 18:33 |只看该作者
原帖由 justlooks 于 2009-3-12 18:27 发表
很简单 getline A 你就把下行内容放进A了 如果是 getline 下行的内容放入$0



是不是可以这样理解,
一般情况下, 每一行都会执行awk的所有语句.

但是有getline的时候, 也当awk的执行, 就是说
读入第一行, 执行awk语句, 内含getline, getline对下一行读入. 当整个awk语句执行完之后.
读入第三行....

就是说第二行被getline读入, 也算awk读入? 所以awk语句完之后, 直接就读入第三行?

论坛徽章:
0
6 [报告]
发表于 2009-03-12 18:44 |只看该作者
awk '{print "before";getline;print "after"}'
awk '{print "before";print "after"}'
写2句实践啊,光想有什么用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP