13

BML.I現在のディレクトリで特定の単語を検索しようとしていました。

以下のコマンドで試したところ:

grep -l  "BML.I" *

単語が含まれている場合は、すべての結果が表示されますBML

完全一致をgrepすることは可能ですか?BML.I

4

4 に答える 4

21

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

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

上記には2つのレベルのエスケープがあることに注意してください。引用符は、シェルがBML\.Igrepに渡されることを保証します。その後\、の期間をエスケープしgrepます。引用符を省略すると、シェルはをピリオドのエスケープとして解釈します\(そして、エスケープされていないピリオドをに渡すだけですgrep

于 2013-03-20T11:02:14.277 に答える
10

試す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.)
于 2013-03-20T11:05:12.790 に答える
4

私はを使用しますfgrep、これはと同じですgrep -F

于 2013-03-20T11:23:43.360 に答える
0

次のコマンドを使用します。

ls | grep -x "BML.I"

于 2019-07-22T06:36:23.120 に答える