sed 編集テキストブロック: 貪欲な一致なし

sed 編集テキストブロック: 貪欲な一致なし

キャッチできたらいいな最初sed を使用してファイルに HTML コメントを追加します。

複数のコメントブロックを使用して'/<!--/,/-->/いる場合は、最初のコメントブロックと最後のコメントブロックの間のすべての項目と一致します!

どんな提案がありますか?

例は次のとおりです。

<!-- 

First comment block

-->

Content

<!--

Second comment block

-->

予想される出力は次のようになります。

<!-- 

First comment block

-->

1行コメントにも機能する必要があります。

<!-- First comment block -->

ベストアンサー1

あなたは次のことをします:

sed '/<!--/,$!d;/-->/q'

最初のコマンドは、最初の一致を<!--除くすべての行を削除します。最初のコマンドで削除されていないもののうち、閉じるタグを検索して終了します(やはりその行を印刷した後)。

Perlを使用してコメントタグを削除します。

perl -ln0777 -e 'print $1 if /<!--\s*(.*?)\s*-->/'

おすすめ記事