Melhores soluções para isso: tail -200 / var / log / messages | cabeça -100

0

Existe alguma solução melhor para isso?

tail -200 /var/log/messages | head -100

Existem outros métodos para alcançar este resultado? (não mais complexo, estou procurando soluções mais simples!)

    
por LanceBaynes 20.05.2011 / 09:07

2 respostas

2

Se você quiser navegar em um arquivo de forma interativa, use apenas less log . Você pode sair menos por q , h é a tela de ajuda. Exemplo de sessão:

:G
:1000k
:100
:f
:b

(o que significa: pule para o final, mova 1000 linhas para cima, 100 linhas para baixo, uma tela para frente e uma tela para trás)

    
por 20.05.2011 / 11:10
1

Se você sabe o número da linha de partida (contado a partir do começo do arquivo), você pode usar sed como este para produzir as linhas acima intervall:

$ for i in 'seq 500'; do echo $i; done > t
$ sed -n '300,400p' t
300
...
400

(que imprime as linhas 300 até 400)

Se você não conhece a linha de início (endereço no sed lingo), você pode inverter a entrada, usar sed e reverese novamente:

$ tac t | sed -n '101,201p' | tac
300
...
400

Você também pode usar sed com um endereço inicial e especificar quantas linhas a seguir devem ser impressas:

$ tac t | sed -n '101,+100p' | tac
300
...
400
    
por 20.05.2011 / 09:35

Tags