BML.I
現在のディレクトリで特定の単語を検索しようとしていました。
以下のコマンドで試したところ:
grep -l "BML.I" *
単語が含まれている場合は、すべての結果が表示されますBML
完全一致をgrepすることは可能ですか?BML.I
をエスケープする必要があります。(ピリオド)デフォルトでは任意の文字と一致するため、特定の単語と一致するように-wを指定します。
grep -w -l "BML\.I" *
上記には2つのレベルのエスケープがあることに注意してください。引用符は、シェルがBML\.I
grepに渡されることを保証します。その後\
、の期間をエスケープしgrep
ます。引用符を省略すると、シェルはをピリオドのエスケープとして解釈します\
(そして、エスケープされていないピリオドをに渡すだけですgrep
)
試す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.)
私はを使用しますfgrep
、これはと同じですgrep -F
次のコマンドを使用します。
ls | grep -x "BML.I"