awk 下如何打印当前匹配行的上一行

 我来答
百度网友5311d79
2014-11-06 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3222万
展开全部

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。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式