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.