使用sed提取匹配输出?

时间:2018-03-22 10:52:53

标签: linux bash shell awk sed

我有一个sed命令来提取绑定状态;数据块,但这也给出了绑定状态活动块的输出,因为该块中的同一关键字也与next和rewind关键字有任何方法匹配精确关键字的绑定状态free,以便我只能在sed命令中获得给定的块。

Program.restart();

1 个答案:

答案 0 :(得分:1)

关注awk可能对您有帮助。

awk '/}/{if(flag){print value ORS $0};flag=val=value="";next} /lease/{val=1} val && /^ +binding state free;/{flag=1} {value=value?value ORS $0:$0}'   Input_file

现在也添加非单线形式的解决方案。

awk '
/}/{
  if(flag){print value ORS $0};
  flag=val=value="";
  next}
/lease/{
  val=1}
val && /^ +binding state free;/{
  flag=1}
{
  value=value?value ORS $0:$0}
'   Input_file

输出如下。

lease {

    *****some text******
      binding state free;
      *****some text******
      *****some text******
    }
    lease {
      *****some text******
      *****some text******
      binding state free;
      *****some text******
      *****some text******
    }