Scorrimento orizzontale con incrementi più piccoli con meno -S


25

Sto usando lessper analizzare i log di accesso HTTP. Voglio visualizzare tutto ordinatamente su singole righe, quindi sto usando -S.

Il problema che ho è che il primo terzo della finestra del mio terminale è occupato da metadati di cui non mi interessa. Quando uso i tasti freccia per scorrere verso destra, trovo che scorre oltre l'inizio delle informazioni che mi interessano!

Potrei semplicemente cancellare l'inizio di ogni riga, ma non so se potrei aver bisogno di quei dati in futuro, e preferirei non dover mantenere file separati o eseguire uno script ogni volta che voglio visualizzare alcuni registri.

Esempio

Questa linea:

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

Scorrerebbe fino a: ng/URL"

Domanda

Esiste un modo per scorrere con incrementi più piccoli, per carattere o per parola?

Risposte:


19

Gli unici comandi di scorrimento orizzontale scorrono di mezzo schermo, ma è possibile passare un argomento numerico per specificare il numero di caratteri, ad esempio digitando 4 Rightpergamene verso destra di 4 caratteri. Meno non ha davvero una nozione di "linea corrente" e non divide una linea in parole, quindi non c'è modo di scorrere di una parola alla volta.

È possibile definire un comando che scorre di un numero fisso di caratteri. Ad esempio, se si desidera che Shift+ Lefte Shift+ Rightscorrano di 4 caratteri alla volta:

  1. Determina le sequenze di controllo che il tuo terminale invia per queste combinazioni di tasti. Terminali inviano una sequenza di byte che iniziano con la fuga (che può essere scritta \e, \033, ^[in vari contesti) caratteri per tasti funzione e keychords. Premi Ctrl+ V Shift+ Leftal prompt della shell: inserisce letteralmente il carattere di escape (lo vedrai ^[sullo schermo) invece che essere elaborato dalla shell e inserisce il resto della sequenza di escape. Una configurazione comune ha Shift+ Lefte Shift+ Rightsend \eO2De \eO2Crispettivamente.

  2. Crea un file chiamato ~/.lesskeye aggiungi le seguenti righe (regola se il tuo terminale invia sequenze di escape diverse):

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

    Quindi eseguire lesskey, che converte la lettura umana ~/.lesskeyin un file binario ~/.lessche lesslegge all'avvio.


19

È possibile utilizzare l'opzione "- #" per impostare il numero di colonne per lo scorrimento orizzontale.

Dalla pagina man:

- # o --shift
Specifica il numero predefinito di posizioni da scorrere in orizzontale nei comandi DESTRA e FRECCIA SINISTRA. Se il numero specificato è zero, imposta il numero predefinito di posizioni a metà della larghezza dello schermo.

Esempio (impostare lo scorrimento orizzontale su 10 colonne):

less -S - # 10 my_file


È possibile aggiungere questa opzione ad alcuni file di configurazione, quindi non devo passare - opzione n. 1 ogni volta che digito il comando?
Trismegisto il

1
@Trismegistos Sì, puoi impostare la variabile d'ambiente ~/.bashrcconexport LESS="-# 1"
wisbucky il

Puoi anche impostare una percentuale di larghezza dello schermo se il numero inizia con un punto decimale. Ad esempio, -# .25scorrerebbe di 1/4 della larghezza dello schermo.
Wisbucky


2

Un'alternativa è usare il mostcercapersone.

In most, no-wrap ( -S) è l'impostazione predefinita e Rightscorre una colonna a destra anziché a metà schermo. Utilizzare >o Tabper scorrere più velocemente.

Un'altra alternativa è il w3mpager (anche uno dei migliori browser web del terminale) dove è possibile utilizzare <, >come pure, e ,, .per i più fine-grain scorrimento (stessi tasti delle tastiere QWERTY).


Questo non è vero. Altro è il wrapping di default e non esiste alcuna opzione -S.
Trismegisto il

1
@Trismegistos, non sto parlando di more(per i quali ci sono dozzine di implementazioni), ma di most(di John E. Davis, non sono a conoscenza di altre implementazioni).
Stéphane Chazelas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.