Existem alguns problemas com sua expressão regular:
-
Antes de mais nada, aconselho você a usar sempre a opção
-P
, que ativa expressões regulares compatíveis com Perl .Por padrão,
grep
usa Expressão regular básica , que não são amplamente usadas e sofrem de espaçamento inconsistente. -
Como é
[A-Z]
, os colchetes têm um significado especial nas expressões regulares. Para usar um colchete literal nos PCREs, escape com uma barra invertida:\[
ou\]
-
As expressões regulares diferenciam maiúsculas de minúsculas, a menos que você defina a opção
-i
. -
*
significa qualquer número de ocorrências, incluindo (0
). Você pode querer usar+
(qualquer número de ocorrênciaspositivo). -
Sempre contorne sua expressão regular com aspas duplas ou o bash expandirá os caracteres.
Como resultado, o seguinte comando funcionará:
tail -f log.txt | grep -Pi "\[[A-Z]+-[A-Z]+\]"