使い方! 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
    

関連情報