这有什么不对吗?
for i in {0..16};do
awk '/foo/ {while (getline > 0); print $0}' ${array[$i]} >> lines.txt;done
我认为“表达”getline>只要getline成功读取输入行,0“就为真。当它到达文件结尾时,getline返回0并退出循环。”
我想在包含“foo”的那一行之后打印出每一行。
,我得到类似于我想要的东西,但不正确。答案 0 :(得分:3)
取出分号。
awk '/foo/ { while(getline > 0) { print }}'
或者
awk 'p; /foo/{p=1}'
答案 1 :(得分:0)
这是你的命令:
awk '/foo/ {while (getline > 0); print $0}'
我认为仅打印输入文件的最后一行。因为你有一个“;”在while(..)之后,所以它使while(..)获取每一行(不打印)直到结束,然后打印$ 0将它打印出来(最后一行)。
顺便说一下,你的工作会有更简单的解决方案。 e.g。awk '/foo/{o=1}o'