改行を挿入する形で置換しようとしたとき、最後に余計な改行が入る


例えば `sample.txt`というファイルがあり、その中に下のような文章が書かれていたとします。

[code]

    これは普通の質問だな。ただ、この質問は良い質問だ。でも、これは悪い質問だ。
    
[/code]

このテキストファイルに対し、「。」毎に改行を入れたいと思ったとします。上の例でいうならば、下のようなことを意図しています。

[code]

    これは普通の質問だな。
    ただ、この質問は良い質問だ。
    でも、これは悪い質問だ。
    
[/code]

そこで、`sed "s/。/。\n/g"
sample.txt`という形で改行を挿入するのを試みました。すると、結果としては最後の`。`でも改行が入ってしまい、空行が最後についてしまいます。

渡し先で空行を無視するようにもできますが、どうせならこの置換の時に、最後の空改行を防ぐ形にしたいと思うのですが、どのようにするのがベターでしょうか?




幾つかやり方はあると思いますが、 `。` のあとに任意の文字があることを利用した、 こんなやり方はどうでしょうか。

[code]

    sed -e 's/。\(.\)/。\n\1/g' sample.txt
    
[/code]




幾つかやり方はあると思いますが、 `。` のあとに任意の文字があることを利用した、 こんなやり方はどうでしょうか。

[code]

    sed -e 's/。\(.\)/。\n\1/g' sample.txt
    
[/code]

