如何使用 !在 sed 命令中?

如何使用 !在 sed 命令中?

如果您觉得这个问题非常基本,请道歉。无论如何,我正在打字,
sed '/[iI]t/ a\\ Found it!' data但它说未找到错误事件。

我尝试!用反斜杠转义它\!,但它不起作用。

我不明白反斜杠何时\可以转义字符并按字面意思使用它,那么为什么它在 sed 中不起作用?

答案1

您在哪个操作系统上尝试过?在 HP-UX 8.11 csh 上,有 2 种方法可以取消历史替换中感叹号的特殊含义(请参阅 man csh 中的历史替换)。

  1. 后面留个空格! (其他几个角色也可以)

    sed '/[iI]t/ a\\
    Found it! ' data
    
  2. 通过 \! 转义它

    sed '/[iI]t/ a\\
    Found it\!' data
    

    这实际上也适用于双引号:

    sed "/[iI]t/ a\\
    Found it\!" data
    

相关内容