GNU sed - 文字列でposixと改行文字を置き換える

GNU sed - 文字列でposixと改行文字を置き換える

POSIXsed仕様からこの声明見つけることができます(私の強調):

エスケープシーケンス '\n' は、パターン空間に含まれる <newline> と一致する必要があります。<newline>テキストを使用しないでください。コンテキストアドレスのBREから、または代替機能から。

次のフラグが付けられたsedGNUコマンドは、--posix代替関数に改行文字を使用するため、この仕様に違反します。

$ printf '1X2' | sed --posix 's|X|\n|'
1
2

それでは、なぜsedエラーメッセージを表示するのではなく、改行文字を挿入するのですか?

ベストアンサー1

「リテラル <newline> を使用しないでください。」、例ではリテラル改行文字は使用しません。したがって、標準のこの部分は関係ありません。

\nはいいいえリテラル改行文字です。

おすすめ記事