aaa <br>bbb ccc
これを、以下のように書き換えたい。
aaa<br>bbb ccc
つまり、
「行頭の<br>」、もしくは、「改行の後の<br>」を単なる<br>に置換したい
のである。
テキストファイルは多数あり、どのファイルに置換対象があるかはわからない。
まず、grepで対象ファイルを探そうと思った。
# grep -E '\n<br>' *.txt #
これだと検索されない。
次のようにすると検索できる。
# grep -E '^<br>' *.txt a.txt:<br>bbb b.txt:<br>bbb
それでは置換してみよう。
# perl -pi -e 's/^<br>/<br>/g' *.txt #
できない。
以下のような置換はうまくいくから、正規表現の問題だろうか。
# perl -pi -e 's/bbb/orange/g' *.txt #
「sedでやれば?」と言うかもしれない。
実は以前これをsedでやろうとしてできず、1個ずつエディタを開いて直したことがあるのだ。
perlでやればいいのかと気づいて、やってみたら、やっぱりダメだったのだ。
sedのときは以下のいずれでもダメだった。
# sed -e "s/^<br>/<br>/g" *.txt # sed -e "s/\n<br>/<br>/g" *.txt
viでは、以下のようにして置換できる。