2013-03-20 7 views
9

現在のディレクトリで特定の単語BML.Iを検索しようとしていました。文字列にドットが入っている場合、正確な単語にgrepする方法

私は、以下のコマンドを使用してみました:それはBML

はそれが可能完全一致をgrepする単語が含まれている場合は、すべての結果を表示している

grep -l "BML.I" * 

BML.I

+0

ファイル名やファイルの内容をお探しですか? – Alepac

+0

@Alepac彼は明らかにコンテンツを探しています。 – Kent

+0

'man grep'を読んでください。 –

答えて

15

ますのを脱出する必要があります。 (ピリオド)。デフォルトでは任意の文字と一致し、特定の単語に一致するように-wを指定します。

grep -w -l "BML\.I" * 

上記には2段階のエスケープがあります。引用符は、シェルがBML\.Iをgrepに渡すことを保証します。 \は、grepの期間をエスケープします。あなたが引用符を省略すると、シェルは期間のエスケープとして\を解釈し(単にgrepにエスケープされていない期間を渡す)

+0

一重引用符が必要な場合があります。 – filmor

+0

I *かもしれませんが、式 –

+0

で解釈/展開する変数はありません。これは '特定の単語ではない' fooBML.Ibar'と一致します。BML.I " – Kent

7

manページからgrep -wF

を試してみてください。

-w, --word-regexp 
        Select only those lines containing matches that form whole words. The 
        test is that the matching substring must either be at the beginning of 
        the line, or preceded by a non-word constituent character. Similarly, it 
        must be either at the end of the line or followed by a non-word 
        constituent character. Word-constituent characters are letters, digits, 
        and the underscore. 



-F, --fixed-strings 
       Interpret PATTERN as a list of fixed strings, separated by newlines, any 
       of which is to be matched. (-F is specified by POSIX.) 
4

私はfgrepと同じですgrep -F

関連する問題