【问题标题】:Sed pattern to remove following line用于删除以下行的 Sed 模式
【发布时间】:2012-07-19 17:42:01
【问题描述】:

我想删除以下流

 warning: the use of `mktemp' is dangerous, better use `mkstemp'

我尝试使用以下 sed 表达式:

sed \
-e '/mktemp\' is dangerous/D' 

还有

 sed \
    -e "/mktemp\' is dangerous/D"

但是没有任何效果。从流中删除该行的正确表达式是什么

【问题讨论】:

  • 从流中删除该行的正确方法是使用mkstemp 而不是mktemp。忽略编译器警告是个坏主意。编写脚本来抑制编译器警告是一个更糟糕的主意。
  • @WilliamPursell 该代码在第三方库中。我不想更改它的代码。
  • 如果它在第三方库中,你为什么要编译它?编译一次,忽略警告,然后链接到库。

标签: linux sed


【解决方案1】:

试试

sed -e "/mktemp' is dangerous/D"

【讨论】:

    【解决方案2】:

    这样做:

    $ cat /tmp/in.txt 
    foo
    bar
    warning: the use of `mktemp' is dangerous, better use `mkstemp'
    baz
    $ sed -e "/mktemp'/d" < /tmp/in.txt
    foo
    bar
    baz
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2021-01-08
      • 2020-01-24
      相关资源
      最近更新 更多