+ -
当前位置:首页 → 问答吧 → 请问这个getline怎么用

请问这个getline怎么用

时间:2011-04-26

来源:互联网

[root@freebird ~]# cat a.txt
Tom:111
John:444
Sohu:998
yyy:000

[root@freebird ~]# cat b
BEGIN { FS=":"
}

/^John/ {
while(getline>0)
print $0
print $2
}


我想从a.txt中找到John开头的那行后 ,打印它后面的记录和$2,可是执行的结果
[root@freebird ~]# awk -f b a.txt
Sohu:998
yyy:000
000


我预期的输出应该是
Sohu:998
yyy:000
998
000
John行被输入后,用getline读取下行Sohu:998 此时$0应该是 Sohu:998 $2是998
接读取下行yyy:000 此时$0应该是 yyy:000 $2是000
请问为什么998这个没有打印出呢  ,我的理解错在哪儿了,请大家指点下,谢谢!

作者: 123freebird   发布时间: 2011-04-26

回复 123freebird


    try:
  1. /^John/{while (getline) print $0,$2}
复制代码
你的代码出错的原因是那个分号,/^John/{while (getline) print $0;print $2}
print $2已经不再while 的循环中。

作者: yinyuemi   发布时间: 2011-04-27