2017-08-08 3 views
-1

ファイルのパターンをgrepしようとしています。私は、パターンオカレンスがそのファイルにコメントされている場合はスキップします。 たとえば、そのパターンが2回出現しますが、出力は1回発生する必要があります。基本的に、それはあなたがシェルのコメントを削除するために、このGrepコマンドでコメント行をスキップする

+1

'/ * * /'や ''や '#'や '//'などのコメントがたくさんあります。除外したい –

+0

このgrepを.plファイルで実行しています。私は#と=頭を使用しています..コメントのためにカット= – Sanchu

答えて

1

簡単な、一般的な方法のための方法を提案してくださいすることができ コメント行をスキップする必要があります:

ここ
egrep -v '^\s*#' <file> 

egrepを入力として正規表現パターンとgrepです。パターン '^ \ s#'は、 '#'文字で始まる行、または空白の後ろに '#'が続く行を示します。 -vというオプションは、一致を反転します(一致しない行は通過します)。その後、さらにパターン検索にパイプすることができます。

注意:コードの後に​​表示されるコメント(例:echo 'foo' # bar)は削除されません。このパイピングソリューションでは、あなたはそうすることができません。

0

grepで-Fオプションを使用できます。 -Fは固定文字列を表します。

System out of memory 
#System out of memory 
System out of memory #1 
1 #System out of memory 

今すぐ-F

grep -rF "#System out of memory" <path to grep> 

出力

./file1:#System out of memory 
./file1:1 #System out of memory 

これは、基本的なイデオロギーであるとgrepする:たとえば、私は、以下のデータを持つファイルを持っています。あなたのパターンに基づいて、それを修正する必要があります

+0

私は同じことを試みましたが、メモリが不足しているシステムのみを検索した場合、コメント行をスキップしません。 memory'のうちメモリ#のうちメモリ システムのうち、 '>グレップ-rF「メモリ不足システム」メモリのうち1.pl システム #System 1 1 #System – Sanchu

関連する問題