5

次のような行を含むファイルがあります

I want a lot <*tag 1> more <*tag 2>*cheese *cakes.

* を削除しようとしています<>が、外側ではありません。タグは上記よりも複雑になる場合があります。たとえば、<*better *tag 1>.

を試してみましたが/\bregex\b/s/\*//g、これはタグ 1 では機能しますが、タグ 2 では機能しません。

どうもありがとう。

4

3 に答える 3

3

必須の Perl ソリューション:

perl -pe '$_ = join "",
        map +($i++ % 2 == 0 ? $_ : s/\*//gr),
        split /(<[^>]+>)/, $_;' FILE

追加:

perl -pe 's/(<[^>]+>)/$1 =~ s(\*)()gr/ge' FILE
于 2013-05-30T18:48:55.497 に答える