sedは読み込んだ行の行末にある改行を削除してパターンスペースと呼ばれるバッファに格納したうえでテキスト処理をし、最後にパターンスペースの内容に改行をつけて出力する。。 だから改行を含む文字列にマッチさせる指定が非常にややこしい。 sedで改行を含む複数行を指定して一気に置換をやろうと一晩なんやかんややってみたけど、朝になったからあきらめてまったくスマートじゃない別な方法で強引に終わらせた。 :loop N $!b loop s/\n//g 一度ファイル内の改行コードを全削除 そのあとに別スクリプトのsedで複数行じゃなくなったファイル内容を文字列指定で置換して、元通り改行コードを入れる置換する。 改行コードを入れる置換は \の後に実際の改行を入れるでok かなりダサい方法だけど一応出力したい結果は得られるから今はいいことにしておく。 sed と改行(1) 入力にない改行の出力入力にない改
![sedで改行を含む複数行の文字列を置換](https://cdn-ak-scissors.b.st-hatena.com/image/square/46bcf6c507c57663f43da33029bb721e8f86a2f8/height=288;version=1;width=512/https%3A%2F%2Fshantiworks.info%2Freblog%2Fwp-content%2Fthemes%2Fcocoon-master%2Fscreenshot.jpg)