sedを使用してエスケープ文字を含む文字列を追加する

sedを使用してエスケープ文字を含む文字列を追加する

現在私は以下を使用しています:

sed -i -e "5a\\
${text}" $filename

変数テキストに "\epsilon"などの文字列を含む特定の行に項目を追加します。

使用するとき

echo -E $text

文字列はよく表示されますが、 に渡された文字列から拡張すると、sedすべてのエスケープ文字が拡張され、結果は私が望むものとは異なります。

何もエスケープせずに文字列の生の内容を使用するようにsedをどのように取得できますか?

ベストアンサー1

sedコマンドはa\エスケープ文字を解釈するため、挿入する文字列にバックスラッシュを繰り返す必要があります。この試み:

sed -e "5a\\
$(echo -E "$text" | sed -e 's/\\/\\\\/g')"

おすすめ記事