ファイル内の文字列を探して、その前のタグの最初のインスタンスを見つけて、そのタグと閉じるタグの間のすべてのエントリを削除してから、ファイルの残りの部分に対してこのプロセスを繰り返すにはどうすればよいですか?
私はこれを探していましたが、sed
私が知っている限り、削除する行数を指定する必要があり、行数は2つのマーカーごとに異なる場合があります。
ベストアンサー1
タグがネストされていないと仮定します。
perl -0777 -pe 's{<tag>.*?</tag>}{
my $r = $&; $r =~ /string/ ? "" : $r}gse' < "$file"