quebra de linha na sessão ssh não funciona com grep

2

Quando eu ssh para meus servidores Linux e uso o grep assim:

arquivo de log do grep 'timeout exceeded' | menos

quebra de linha não funciona.

No entanto, se eu usar o mesmo comando, mas usar menos primeiro, como este:

menos arquivo de log | grep 'timeout exceeded'

as linhas são quebradas. Não tenho certeza qual é o problema ou se isso é normal ou não. Mas isso acontece independentemente do cliente ssh que eu uso. Eu tentei tanto putty e um cliente Ubuntu. Como posso consertar isso?

    
por user53029 28.07.2015 / 00:12

3 respostas

2

Quando você faz

grep 'timeout exceeded' logfile | less

Você pode usar as teclas de seta para a direita para ir para o final da linha (para a esquerda para voltar).

    
por 28.07.2015 / 00:21
5

Este não é o comportamento padrão de less . O padrão é envolver linhas longas.

Você está vendo esse comportamento porque tem a opção -S (e vários outros) definida na variável de ambiente LESS .

       -S or --chop-long-lines
              Causes  lines  longer than the screen width to be chopped (trun‐
              cated) rather than wrapped.  That is, the portion of a long line
              that does not fit in the screen width is not shown.  The default
              is to wrap long lines; that is, display  the  remainder  on  the
              next line.

Para resolver o problema, verifique os scripts de inicialização do shell (por exemplo, $HOME/.bash_profile , $HOME/.bashrc ) e os scripts de inicialização do shell do sistema (por exemplo, no diretório /etc/profile.d ) para ver onde a variável de ambiente está sendo definida e faça as alterações desejadas.

    
por 28.07.2015 / 02:20
0

Se o seu less for o padrão para não envolver linhas, tente usar o caminho completo para menos. Execute which less e veja o caminho que ele oferece. Em seguida, use esse caminho em seu lugar. Por exemplo, se estiver em / usr / bin / less, tente grep 'timeout exceeded' logfile | /usr/bin/less .

    
por 28.07.2015 / 01:45

Tags