2016-08-05 8 views
1

これは私がgrep、正確なパターンを検索する方法は?

grep -n 'qtrain' *.m 

を試してみました。しかし、私はまた、他の人を取り除くためにどのように

SKSC.m:195:model.qtrain = model.qtrainExtra(:,k-1); 
SKSC.m:196:model.mqtrain = model.mqtrainExtra{k-1}; 
SKSC.m:197:model.sqtrain = model.sqtrainExtra{k-1}; 

得たものでしたか? 私はちょうど私のパターンと完全に一致したいです。

+3

を使用し、テキストのみだった「qtrain」で行にマッチする期待していた場合は

grep -no qtrain *.m

を使用したいです正確に?例を挙げる – kisanme

答えて

3

「正確なパターン」あなただけqtrainその中での完全なラインを意味し、 はその後、-xフラグを使用することによってあれば:これはまさに「qtrain」と他には何が含まれている行と一致します

grep -nx qtrain *.m 

を。


"正確なパターン" あなたは、あなたが単語全体一致する-wを使用することができ、 "blahqtrain" または "qtrainblah" "qtrain" と一致するわけではないことであれば:

grep -nw qtrain *.m 

これをあなたの入力にのみ、この行にマッチします:

SKSC.m:195:model.qtrain = model.qtrainExtra(:,k-1); 

ところで、ここでは、正規表現を使用して別の同等の方法があります:

grep -n '\<qtrain\>' *.m 

man grepから:

シンボル\<\>は、それぞれの単語の 最初と最後に空の文字列に一致します。

1

また、単に ".qtrain" と何かを得るために

grep -n '\.qtrain' *.m 

を行うことができます。グレープ中にドットをエスケープしなければならないことに注意してください。

1

"qtrain"だけ戻したいですか?もしそうなら、あなたはおそらく、あなたはそれが唯一のあなたの予想される出力は何

grep -n ^qtrain$ *.m

関連する問題