AWK 打印匹配内容之后的指定行

1、awk 匹配文档的某行内容,再打印某行内容之前或者之后的指定行

// 先取出某行内容的行号,再基于此行号来打印某行内容之前或者之后的指定行
# cat awk.txt 
1 aa
2 bb
3 cc
4 dd
5 ee
6 ff
7 gg

// 匹配 "4 dd" 后,打印 "4 dd" 后的第 2 行
# awk -v line=$(awk '/4 dd/{print NR}' awk.txt) '{if(NR==line+2){print $0}}' awk.txt
6 ff

// 匹配 "4 dd" 后,打印 "4 dd" 前的第 3 行
# awk -v line=$(awk '/4 dd/{print NR}' awk.txt) '{if(NR==line-3){print $0}}' awk.txt
1 aa

// 匹配 "4 dd" 后,打印 "4 dd" 之前的所有行
# awk -v line=$(awk '/4 dd/{print NR}' awk.txt) '{if(NR<line){print $0}}' awk.txt
1 aa
2 bb
3 cc

// 匹配 "4 dd" 后,打印 "4 dd" 之后的所有行
# awk -v line=$(awk '/4 dd/{print NR}' awk.txt) '{if(NR>line){print $0}}' awk.txt
5 ee
6 ff
7 gg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 8,488评论 2 25
  • awk介绍awk变量printf命令:实现格式化输出操作符awk patternawk actionawk数组aw...
    哈喽别样阅读 5,515评论 0 4
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 5,046评论 0 8
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,182评论 2 33
  • 小子迷恋叽里呱啦app。 吃晚饭时ipad又开始了。 结果看了一会后跳到了付费界面。 懒妈在一旁说:这个要付费的么...
    欧元小姨阅读 1,306评论 0 0