awk吧 关注:104贴子:294
  • 2回复贴,共1

如何使用AWK打印指定行的上两行的数据啊?

只看楼主收藏回复

RT,比如文件1.txt的内容如下所示
111111 ABC CDB
NAM
1
就是想找到NAM的下一行为1的时候,打印出NAM的上一行的第一列的数据,请问如何实现啊?


1楼2014-03-17 13:40回复
    awk '/NAM/{if(getline==1)print i}{i=$1}'


    IP属地:广东2楼2017-11-08 11:49
    回复
      每行记录第一列数据到一个数组a1[]里。然后当一行数据为1时,检查上一行是否NAM,如果是,就打印前两行的数组中的数据。
      a1[NR]=$1
      if ($1==1 && a1[NR-1]=="NAM" ) print a1[NR-2]


      IP属地:广西3楼2019-12-09 20:44
      回复