Sed

如何使用 !在 sed 命令中?

  • February 6, 2017

如果您覺得這個問題非常基本,請道歉。無論如何,我正在打字

sed '/[iI]t/ a\\ Found it!' data,但它說找不到錯誤事件。

我嘗試!用​​反斜杠轉義它,\!但它不起作用。

我不明白什麼時候反斜杠\可以轉義一個字元並按字面意思使用它,那麼為什麼它在 sed 中不起作用?

您在哪個作業系統上嘗試過?在 HP-UX 8.11 csh 上,有兩種方法可以取消歷史替換驚嘆號的特殊含義(請參閱 man csh 中的歷史替換)。

  1. 後面放空格!(其他幾個角色也可以)
sed '/[iI]t/ a\\
Found it! ' data
  1. 通過 ! 轉義它
sed '/[iI]t/ a\\
Found it\!' data

這實際上也適用於雙引號:

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

引用自:https://unix.stackexchange.com/questions/297219