POSIXsed
仕様からこの声明見つけることができます(私の強調):
エスケープシーケンス '\n' は、パターン空間に含まれる <newline> と一致する必要があります。<newline>テキストを使用しないでください。コンテキストアドレスのBREから、または代替機能から。
次のフラグが付けられたsed
GNUコマンドは、--posix
代替関数に改行文字を使用するため、この仕様に違反します。
$ printf '1X2' | sed --posix 's|X|\n|'
1
2
それでは、なぜsed
エラーメッセージを表示するのではなく、改行文字を挿入するのですか?
ベストアンサー1
「リテラル <newline> を使用しないでください。」、例ではリテラル改行文字は使用しません。したがって、標準のこの部分は関係ありません。
\n
はいいいえリテラル改行文字です。