awk是逐行处理文本的,除非你每次处理下一行之前先保存当前行,否则是没办法的。
awk '{a=$0;while(1){getline b;if(b~"^[0-9]+$"){print a;exit}else a=b}}' myfile
始终用变量a保存当前行
然后通过循环用getline获取下一行赋给变量b去进行匹配。
这里,如果b满足全数字的要求,则打印上一行a并退出循环;否则,更新a的值为b。