O -o
do grep só produzirá as correspondências, ignorando as linhas; wc
pode contá-los:
grep -io "nicolas bomber" annuaire | wc -l
ou simplesmente,
grep -ioc "nicolas bomber" annuaire
Como você comentou, você pode combinar qualquer número de espaços em branco entre as palavras, usando a opção -z
,
grep -iz "nicolas[[:space:]]*bomber" annuaire | wc -l
De man grep
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.)
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
-c, --count
Suppress normal output; instead print a count of matching lines for each input file.
Alternativamente, se você quiser pesquisar a string em uma extensão de arquivo específica, por exemplo, digamos todos os arquivos *.txt
, você pode usar:
grep -R --include='*.txt' -ioc "nicolas bomber" .