代码之家  ›  专栏  ›  技术社区  ›  Ebrahim Ghasemi

使用“sed”删除包含某物的行和下一行

  •  2
  • Ebrahim Ghasemi  · 技术社区  · 7 年前

    good
    good bad
    next of baaaad
    good
    

    我想用 sed

    我试过了,但没用:

    ebra@him:/tmp$ cat iio | sed -e "s/\n.*bad.*\n.*//"
    good
    good bad
    next of baaaad
    good
    
    5 回复  |  直到 7 年前
        1
  •  3
  •   RavinderSingh13 Nikita Bakshi    7 年前

    sed

    sed '/bad/{N;d}'  Input_file
    

    awk 可以在这里帮你。

    awk '/bad/{getline;next} 1'  Input_file
    
        2
  •  3
  •   Kent    7 年前

    sed '/bad/{N;d}' file
    

    kent$  cat f
    1good
    2good bad
    3good --
    4good
    5bad
    6good--
    7good
    
    kent$  sed '/bad/{N;d}' f
    1good
    4good
    7good
    
        3
  •  3
  •   Amadan    7 年前
    sed -e '/bad/{N;d;}' 
    

    在一条匹配的线上 /bad/

        4
  •  3
  •   Benjamin W.    7 年前

    $ sed '/bad/,+1d' infile
    good
    good
    
        5
  •  2
  •   anubhava    7 年前

    这是另一个 sed gnu sed

    sed '/bad/,+1 d' file
    

    good
    good
    

    这个

    sed '/bad/,+2 d' file
    
    推荐文章