Olá, tenho um arquivo de log que contém muitas informações e é muito difícil localizar o que estou procurando, então cheguei a este comando que me mostra apenas o que quero ver no log, ele funcionará como um ouvinte quando o padrão corresponder, mostre-me apenas os resultados da pesquisa
tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\""
E funciona bem, o problema é se eu canalizar outro grep
tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"jsonKeyOne\"" | GREP_COLOR='01;31' egrep --color=always "\"jsonKeyTwo\""
Eu acho que não funciona porque quando eu canalizo um para o outro porque o resultado do primeiro não contém a condição do segundo, nada é mostrado, então eu quero que ambos (ou mais) grep operem em todos os arquivos e apenas dê cada corda com uma cor diferente para identificar a diferença com mais facilidade
NOTA se eu adicionar :|$ ao final, ele funcionará como uma cauda normal e me mostrará muitas informações extras que não são o que eu quero
tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\":|$"
Responder1
De preferência use:
grep -e 'jsonKeyOne' -e 'jsonKeyTwo'
…para OU seus termos. Dependendo do seu tipo de grep também -E 'jsonKeyOne|jsonKeyTwo' também é possível. Esta é a opção mais rápida apenas com os termos.
Cores diferentes funcionam assim: primeiro termo só colorido e todas as outras linhas sem cor, próximo termo com cor diferente e todas as outras linhas também… até o último termo com sua cor e também todas as outras linhas.
Ou grep ou destaque de sintaxe, melhor não ambos.