Devi scappare dal file . (punto) poiché per impostazione predefinita corrisponde a qualsiasi carattere e specifica -w per trovare una parola specifica, ad es.
grep -w -l "BML\.I" *
Nota che ci sono due livelli di fuga in quanto sopra. Le virgolette assicurano che la shell passi BML\.I
grep. Il \
quindi esegue l'escape del punto per grep
. Se ometti le virgolette, la shell interpreta il \
come escape per il punto (e passerebbe semplicemente il punto senza caratteri di escape a grep
)
prova grep -wF
dalla pagina man:
-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.)