Eu suponho que isso pode ser feito melhor com awk
, mas isso é o melhor que posso oferecer.
grep -zo "Bluetooth\s*Soft blocked: no\s*Hard blocked: no" file_name | grep -c "Bluetooth"
-z
faz grep
tratar o arquivo inteiro como uma linha.
-o
grava apenas a saída que correspondeu à string e não à linha inteira.
(no nosso caso com -z
que significaria todo o arquivo)
\s
corresponde a caracteres em branco e novas linhas.
A segunda instância de grep
pesquisará apenas a palavra "Bluetooth" na saída da primeira chamada grep
.
-c
faz com que grep
grave a contagem de regex correspondida, em vez das correspondências correspondentes.