No Unix "less", posso pular para a próxima linha que NÃO contém X?

21

Na lessferramenta Unix , é possível pular para a próxima linha que não contém uma determinada expressão?

Às vezes, preciso procurar em arquivos que contêm milhares de linhas adjacentes semelhantes que, por exemplo, todos dizem "Computing something " e estou interessado na próxima linha após o bloco atual, que não contém a palavra "Computing".

dehmann
fonte

Respostas:

29

Sim, esta é uma funcionalidade de pesquisa não compatível, por exemplo:

less file.conf

você digita /e, depois disso, !sua última linha deve se parecer com:

Non-match /

digite seu padrão, por exemplo, Non-match /^#para procurar a primeira linha sem começar#

Em vez de !personagem, você também pode usar Ctrl+N.

Casual Coder
fonte
11
Isto é perfeito. Não poderia ter esperado uma resposta melhor.
dehmann
4

Como complemento à resposta do Casual Coder:

Você também pode filtrar as linhas completamente:

<logfile grep -v mypattern |less 

A desvantagem é que você precisa sair e reiniciar o grep para alterar o padrão; a vantagem é que as linhas que você não deseja ver ficam ocultas, o que facilita a identificação de padrões interessantes nas linhas nas quais você está interessado.

sleske
fonte
1

Não apenas você pode pular entre linhas que não contêm X, mas também ocultar as linhas que contêm X, usando lesso &comando regex filter.

less file.conf

digite &!^Computinga enterchave e todas essas linhas serão ocultadas da vista.

Você ainda pode pesquisar nas linhas restantes com /.

Depois de encontrar a linha desejada, você pode trazer as outras pessoas de volta, se precisar do tipo de contexto, e &depois a enterchave para remover o filtro.

Wil
fonte