
このような文字列パターンを削除したい
You should not remove this /*This is the part should remove*/ You
should not remove this
/*
および内のテキストをすべて削除したいと思います*/
。
答え1
「人に魚の釣り方を教える」と「人に魚を与える」という観点から、正規表現に関するチュートリアルへのリンクを貼っておきます。 正規表現.info/クイックスタート.html
迅速な解決策が必要な場合は、次の手順に従ってください。vim でファイルを開き、次のように入力します。
:s/\/\*.*?\*\/ /g
これは、/* で始まり */ で終わるすべての文字列をスペースに置き換えるものです。私が書いた式が台無しになった場合に備えて、最初に正規表現のチュートリアルへのリンクを貼りました。チュートリアルを読んで独自のコマンドを書くか、上記の行を使用する前にバックアップを作成してください。
答え2
次の簡単な sed 行を試してください。
sed -e 's@/\*.*\*/@@' file
これにより、出力が表示されますが、実際にファイルは変更されません。実行して必要な変更が行われたことを確認したら、-i
の前にを付けて-e
、ファイルをその場で変更するように指示します。
/*
実際には、との間にあるすべてのものを取得して*/
何もないものに置き換えます(基本的に削除します)。ただし、/*
との部分も取得します。*/
正規表現を台無しにしてしまった場合に備えて、まずは変更しない方法を紹介します (メモリから作業しており、現在のマシンでは sed にアクセスできないため、すぐにテストできません)。また、削除するテキストが行をまたぐ場合は、sed は各行を個別に処理するため、この方法は機能しないことに注意してください。複数のテキスト行を一度に処理するプログラムが必要な場合は、awk または perl のいずれかが必要になります (どちらも、コードを提案できるほど詳しくありません)。