Rolagem horizontal em incrementos menores com menos -S

20

Estou usando less para analisar os registros de acesso HTTP. Eu quero ver tudo perfeitamente em linhas simples, então estou usando -S .

O problema que tenho é que o primeiro terço da minha janela de terminal é ocupado com metadados que não me interessam. Quando eu uso as teclas de seta para rolar para a direita, descubro que rola para além do início das informações que me interessam!

Eu poderia excluir o início de cada linha, mas não sei se precisarei desses dados no futuro, e prefiro não ter que manter arquivos separados ou executar um script toda vez que quiser ver alguns logs.

Exemplo

Esta linha:

access.log00002:10.0.0.0 - USER_X [07/Nov/2013:16:50:50 +0000] "GET /some/long/URL"

Deslocar-se-ia para: ng/URL"

Pergunta

Existe uma maneira de eu rolar em pequenos incrementos, seja por caractere ou por palavra?

    
por Mike 25.11.2014 / 17:32

4 respostas

15

Os únicos comandos de rolagem horizontal rolam pela metade de uma tela, mas você pode passar um argumento numérico para especificar o número de caracteres, por exemplo, digitando 4 Direita rola para a direita em 4 caracteres. Menos não tem realmente uma noção de "linha atual" e não divide uma linha em palavras, então não há maneira de rolar por uma palavra de cada vez.

Você pode definir um comando que rola por um número fixo de caracteres. Por exemplo, se você quiser Shift + Esquerda e Shift + Direita para rolar por 4 caracteres por vez:

  1. Determine as seqüências de controle que seu terminal envia para essas combinações de teclas. Os terminais enviam uma seqüência de bytes que começam com o caractere de escape (que pode ser escrito \e , 3 , ^[ em vários contextos) para teclas de função e de teclas. Pressione Ctrl + V Deslocamento + Esquerda em um prompt do shell: isso insere o caractere de escape literalmente veja ^[ na tela) em vez de ser processado pelo seu shell, e insere o resto da seqüência de escape. Uma configuração comum tem Shift + Esquerda e Shift + Direita envia \eO2D e \eO2C respectivamente. / p>

  2. Crie um arquivo chamado ~/.lesskey e adicione as seguintes linhas (ajuste se o seu terminal enviar diferentes seqüências de escape):

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    Em seguida, execute lesskey , que converte ~/.lesskey legível por humanos em um arquivo binário ~/.less que less lê quando é iniciado.

por 26.11.2014 / 02:21
15

Você pode usar a opção "- #" para definir o número de colunas para rolagem horizontal.

Da página man:

-# or --shift
Specifies the default number of positions to scroll horizontally in the RIGHTARROW and LEFTARROW commands. If the number specified is zero, it sets the default number of positions to one half of the screen width.

Exemplo (defina a rolagem horizontal para 10 colunas):

less -S -# 10 my_file

    
por 27.02.2015 / 11:16
6

Digite um número, que é o número de colunas para o qual você deseja rolar, depois pressione a tecla de direção.

Fonte: Lista de funções úteis 'menos'

    
por 25.11.2014 / 17:34
1

Uma alternativa é usar o pager most .

Em most , no-wrap ( -S ) é o padrão e Right rola uma coluna para a direita em vez de uma meia tela. Use > ou a aba para rolar mais rápido.

Outra alternativa é o w3m pager (também um dos melhores navegadores web de terminal) onde você pode usar , > também, e , , . para rolagem de grão mais fino (mesmas teclas em teclados qwerty).

    
por 25.11.2014 / 17:55