sedで()内に改行文字を使用する方法は?

sedで()内に改行文字を使用する方法は?

交換したいときは、Dot次のように言ってください。

Dot
##empty line##

私はこうする:

sed 's/Dot/Dot\
/g'

はい、文字通りの新しい行がBSDで機能する方法ですsed。ただし、sed括弧内にある場合は同じことはできません。コマンド例:

lol=$(echo $varcontaining something | sed 's/Dot/Dot\
/g')

を(空白)に置き換えるからです。

ベストアンサー1

このStackoverflow Q&Aで言及されている次の方法はどうですか?BSD sedで改行置換を使用する方法は?:

sed -e 's/ /\'$'\n/g'

あるいは、別の方法で次のように変数に改行文字を入れます。

cr="
"

次に変数を使用します。

sed "s/ /\\${cr}/g"

おすすめ記事