sed
ファイルからhtmlコードのブロックを削除するために使用しようとしています。削除するブロックがファイル内で複数回出現し、複数の行にまたがっています。また、ブロックの内容は異なりますが、明確な開始と終了の線引きがあります。
私はこれを機能させるために多くのアプローチを試みましたが、怠惰が機能しsed
、行間で一致する問題に直面しています。
これが私がやろうとしていることの例です:
good stuff a
good stuff same line START
bad stuff 1.0
bad stuff 1.1
END
good stuff b
good stuff b
good stuff same line START bad stuff 2.0
bad stuff 2.0
END
good stuff c
なる:
good stuff a
good stuff same line
good stuff b
good stuff b
good stuff same line
good stuff c
これまでに試したいくつかのアプローチを次に示します。
sed -n '1h;1!H;${;g;s/START.*END//mg;p;}' < test > test2
境界を越えて機能します。
sed -n 's/START[^END]*END//g' < test > test2
E または N または D のみを否定します。
sed -n 's/START.*?END//g' < test > test2
怠惰に振る舞わない。
ありがとうございました。