私は最終的にsedとは対照的にこの目的のためにperlの使用を承認するように私の上司を得ました。Perl非貪欲なRegex
ここに基本的な質問があります。
私はこのような行があります。
<div class="SectionText">Sometext</div><div class="SectionText">Some more text</div>
それはひどく厄介だが、私はそれを書いていないし。いずれにせよ、このようなページの立派な数があり、彼らはこの形式に変更する必要があります
<p>Sometext</p><p>Some more text</p>
これは明らかに非貪欲にする必要があります。
perl -nle "s/(.*)<div class=\"SectionText\">(.*?)<\/div>(.*)/\1<p>\2<\/p>\3/ig; print $1" "somefile.html" > otherfile.html
しかし、これは何もしませんし、SectionTextすべてのタグがまだ残っている:今、ここに私はこれを支援するために作ってみたラインです。
あなたは貪欲ではなく、正規表現の始め、途中、そして終わりに '。* 'を入れておく必要があると言います。また、実際のHTMLパーサーを使用したくないのですか? –