
答え1
p
改行文字を追加:
% printf 1 | sed 'p;s/1/2/'
1
2%
ご覧のとおり、2
印刷された内容には末尾の改行文字はありませんが、その前に1(from)p
があります。
答え2
今答えを見つけたと思います。 POSIX sedのドキュメントhttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html、これは次のとおりです。
パターンスペースが標準出力または名前付きファイルに書き込むたびに、sedは直ちに改行文字に従う必要があります。
これはp
、コマンドが常に改行だけでなくパターンスペースも印刷することを意味します。また2\n\n1
、4\n\n1\n3
後に改行文字がある理由も説明します6\n\n1\n3\n5
。
この記事に間違った部分があると思われる場合は、訂正してください。ありがとうございます。