正規表現を使用してファイルからテキストを削除する

正規表現を使用してファイルからテキストを削除する

私のファイルにテキストが多すぎます。===シンボルとの間のすべてのテキストを削除したいです<!!!>。たとえば、コマンドを実行した後でText ===some comments<!!!> lala ===aaa<!!!>"なければなりません。Text lala私はそれを試しましたが、うまくsed -i -E "s/(===(.*)<!!!>)//" fileいきませんでした。

編集する:

Text ===

some commenkjghkb

ufjhbgdfxjhg


srtdfts

</!!!> 

lala ===aaa

</!!!>"```

しなければならないText lala

ベストアンサー1

Perl正規表現を使用するとできます欲はないマッチ:

perl -pe 's/===.*?<!!!>//g' file

編集1:テキストを挿入するには、次のようにします。

perl -pe 's/===.*?<!!!>/Text you want to insert/g' file

編集2:複数行コメントを処理する必要がある場合は、次のものを使用することもできます。

perl -pe 'BEGIN{undef $/;} s|===.*?</!!!>|insert|gs' file

s改行文字にも一致する修飾子を使用する必要があります.。入力区切り文字であるperl変数は$/undefに変更する必要があります。これは「フルルック音」モードとも呼ばれます。

おすすめ記事