Atualmente, estou examinando muitos logs desconhecidos, procurando alguns problemas. O primeiro arquivo que olho é Events.log e recebo pelo menos três páginas nas less
quais parecem exibir o mesmo evento em momentos diferentes - um evento que parece ser bastante benigno. Gostaria de filtrar este evento e, atualmente, parei less
e fiz algo como
grep -v "event text" Events.log | less
Isso agora traz uma série de outros eventos comuns e desinteressantes que eu também gostaria de filtrar. Existe uma maneira que eu puder grep -v
dentro de less
? Em vez de ter que fazer
egrep -v "event text|something else|the other thing|foo|bar" Events.log | less
Parece-me um recurso útil quando se olha para qualquer tipo de arquivo de log - e se less
não for a ferramenta, há outra com as qualidades que eu procuro? Apenas um less
visualizador de estilo com incorporado grep
.
less
, usar '&! <1stpattern>' permite-me 'ocultar' linhas com um padrão, no entanto, isso só se aplica a um padrão de cada vez; portanto, se eu encontrar um segundo padrão e aplicar '&! <2ndpattern>', as linhas que correspondiam ao primeiro padrão e estavam ocultas agora são visíveis. Tão perto!&!
e, em seguida, pressione uma tecla de seta.less
; Não sei se ele foi preservado após a reinicialização.Com base na resposta do orion , a
less(1)
página de manual descreve(Claro
^N
e^E
, etc, representam Ctrl+ Ne Ctrl+ E, etc)Acontece que e funcionam bem juntos. Por exemplo, os comandos
&pattern
/pattern
&!arp|dns
Enter/
Ctrl+Kfail|fatal|fault|sd[a-z][0-9]
Enterdigitado em qualquer ordem, vai esconder (excluir) todas as linhas que contêm
arp
oudns
(comogrep -v
), e depois, nas restantes linhas, destacar todas as ocorrênciasfail
,fatal
,fault
, ou qualquer coisa que se parece com o nome de um dispositivo SCSI (sd[a-z][0-9]
). Observe que as linhas que contêmarp
oudns
, e tambémfail
ou qualquer outra palavra de perigo, não serão exibidas.fonte
Nos últimos meses, me apaixonei um pouco
fzf
.No seu caso, enquanto contexto não é necessário (ou seja, o equivalente a grep de
-A
,-B
ou-C
não é necessária, e pela maneira, menos de&
também tem a mesma limitação), então FZF é uma ferramenta muito poderosa.Aqui está um exemplo bobo:
Se você executar isso e jogar com entradas como essas,
aa | bb dd | ee !gg !hh
verá rapidamente o que está acontecendo.A documentação de Fzf sobre o
|
operador é escassa, mas meu melhor palpite é que ela se aplica apenas aos termos imediatamente antes e depois, o que significa, com efeito, que OR tem precedência sobre AND (o que está implícito ; todos os termos são AND por padrão) . Mas na maioria dos casos, isso não deve ser um problema, e as coisas funcionam bem na minha experiência.Experimente. Achei surpreendentemente útil quando se trata de procurar coisas quando não tenho muita certeza do que estou procurando e quando o contexto não importa.
fonte