Vous devez échapper au . (point) car par défaut, il correspond à n'importe quel caractère, et spécifiez -w pour correspondre à un mot spécifique, par exemple
grep -w -l "BML\.I" *
Notez qu'il y a deux niveaux d'échappement dans ce qui précède. Les guillemets garantissent que le shell passe BML\.I
grep. Le \
puis échappe le point pour grep
. Si vous omettez les guillemets, le shell interprète le \
comme échappement pour la période (et passerait simplement la période non échappée à grep
)
essayez grep -wF
de la page de manuel :
-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.)