Procurando por um programa como tail
ou less
que permita visualizar meus logs sem linhas que contenham uma determinada string. Por exemplo, veja meu syslog sem as [UFW BLOCK]
linhas de entrada UFW ( ).
command-line
less
John Gr.
fonte
fonte
less
oferece a possibilidade de filtrar as linhas exibidas após um padrão de expressão regular. Você pode usar esse recurso digitando&
seguido pelo padrão e revertê-lo digitando&
sozinho.Respostas:
A opção de inversão de correspondência de padrão
-v
paragrep
é realmente útil para isso:Isso mostrará todas as linhas que não contêm
UFW BLOCK
. Comogrep
usa expressões regulares básicas por padrão, a inclusão dos colchetes fará com que procure qualquer um dos caracteres individuais de 'UFW BLOCK', incluindo o espaço. Você provavelmente acabará sem saída. Se você precisar garantir que haja colchetes ao redor da string, escape-os\[UFW BLOCK\]
ou use a-F
opção degrep
incluir apenas strings fixas (obrigado a Zanna e Steeldriver pelos conselhos sobre isso):Você pode facilitar a visualização, canalizando a saída para um pager como
less
:Ou redirecione a saída para um arquivo no diretório inicial para visualização posterior:
fonte
fgrep
comando que é equivalente agrep -F
.Você também pode usar
sed
od
comando 's para excluir as linhas com o padrão do fluxo:Nós escapamos
[]
como normalmente eles denotam uma classe de personagem, significando "combinar qualquer coisa aqui dentro"fonte
Você pode usar qualquer ferramenta com recursos de edição. Você já recebeu soluções usando
grep
esed
, aqui estão algumas outras opções. Tudo isso pode ser facilmente canalizado paraless
oumore
ou qualquer outra coisa.Perl
Como este é Perl, TIMTOWDI! .
awk
fonte
Você também pode usar
awk
:Uso quando tenho mais de um "padrão" e não quero usar dois
grep
como:qual a sintaxe é:
fonte
grep -Ev "foo|bar"
?-e
para definir vários padrões.grep -v -e 'foo' -e 'bar'
Com
less
a&
opção de comando , é possível filtrar para exibir apenas o padrão correspondente desejado, como abaixo,no seu caso, se você deseja que as linhas de filtro
UFW BLOCK
não sejam exibidas na saída, basta usar&!
o seguinte:fonte