コマンドsedで複数行置換を行うにはNを使えば良いが、1行目の検索文字列が続けて複数ある場合は少し工夫が必要になる。(改行)(改行)(改行)文字列のようなケースだ。改行+文字列にマッチさせたい場合は、ループを使って改行+文字列までたどり着くようにしてから検索置換を実行する。ファイルそれぞれの意味は以下のようになる。なかったら検索置換を実行これで直前1つの改行だけを対象に検索置換が行える。*.htmlのようになる。Perlを使うPerlが使えるのであれば、あまり考えなくても\nで改行文字にマッチさせることができる。ファイル-pはsedのような出力を行うオプションである。findと組み合わせて複数ファイルの複数行置換を行う場合は以下のようになる。\;-i.bakは置換前のファイルを残すオプション。ファイル名の最後に.bakが付いたファイルが残る。-piとしておけば、ファイルを直接編集することになる。複数行にわたっているHTMLなどのタグブロックで、特定の文字を含むブロックを削除したいときは以下のようにする。「(?!」の表現を使うのがミソ。ファイルまず、ファイルを読み込む際、各行のセパレータとして\0=NULLが設定されているので、「-0」オプションで\0以外の使われていない文字を8進数で指定する。「-07」(BELL文字)や「-0777」(x1FFの無効文字)を設定すると、ファイル全部の文字列が一気に検索対象として読み込まれる。以降はsオプション(.文字が改行にもマッチする)モードで検索置換すればOKだ。あとは、「((?!</item).)」のような閉じタグ排他の正規表現で最小マッチを行って正確にマッチさせておけばOKだ。(18)©設定やツールねた。