sedを使用して改行( n)を挿入します
Insert Newline Using Sed
解決:
NSBSDのsedはをサポートしていません
n改行の表現(それをリテラルに変換する
NS):
$エコー「123」。 | sed -E's /([[:digit:]] *) ./ 1 n次の行/ '123n次の行GNUsedはサポートします n表現:
$エコー「123」。 | gsed -E's /([[:digit:]] *) ./ 1 n次の行/ '123次の行代替手段は次のとおりです。
次に使用する単一文字の区切り文字を使用しますtrは新しい行に変換されます:
$エコー「123」。 | sed -E's /([[:digit:]] *) ./ 1 |次の行/ '| tr '|' ' n'123次の行または、sedスクリプトでエスケープされたリテラルの改行を使用します。
$エコー「123」。 | sed -E's /([[:digit:]] *) ./ 1 next line / '123 next lineまたは、新しい行を定義します。
POSIX:
nl = ''BASH / zsh / ANSI C引用をサポートするその他:
nl = $ ' n'そして、適切な引用符でsedし、リテラルを挿入するためにエスケープしますNS:
エコー「123」。 | sed's /./''\${nl} ''次の行/ '123次の行または使用するawk:
$エコー「123」。 | awk '/ ^ [[:digit:]] + ./ {sub(/ ./、' n次の行 ')} 1'123次の行または、サポートするGNUsedを使用しますNS
sedで改行を取得するための移植可能な方法は、バックスラッシュとそれに続く文字通りの改行です。
$ echo'foo '| sed's / foo / foo bar / 'foo barただし、sedではなくawkを使用することで、問題全体に対してはるかに簡単な解決策があることを保証します。