Come usare `cat` per vedere la cima di un file molto lungo?


18

Vorrei sapere come

cat my-verylong-file

e mostralo dall'alto invece della fine. Come fa il comando man .


5
Per completezza, c'è anche il morecomando ... ma poiché moreè meno capace di less, è vero che "less is more". Infine c'è anche pgper "pagina". Puoi anche usare questi comandi con pipe - ad es. ls -l | lessper spezzare un elenco di file molto lungo in più pagine. E potresti persino usare cat my-verylong-file | less.
Baard Kopperud,

Inoltre la pena sottolineare che "Per impostazione predefinita, usi uomo / usr / bin / less -è." (da man man).
Trauma digitale,

Risposte:


43

Usa less, che mostrerà il file dall'alto, permettendoti di scorrere attraverso di esso, proprio come man:

less my-verylong-file
  • Premere qper uscire.

Se sei solo interessato a vedere le n prime righe di un file, headpotrebbe essere un'alternativa:

head -n 25 filename

mostrerà le prime 25 righe del file.

Stessa cosa per le n ultime righe di un file con tail:

tail -n 25 filename

2
lesspotrebbe essere utilizzato anche per scorrere output di comandi molto lunghi. Qui viene presentato un esempio: ls -laR --color=always ~/ | less -R.
pa4080,

2
E il nome del comando "less" è un gioco di parole sul nome del comando "more" (che sostituisce più o meno) che a sua volta è stato chiamato dal prompt "--Più" che ha dato. Sotto MacOS sembra che più sia lo stesso binario di meno, quindi la metamorfosi è completa :)
Thorbjørn Ravn Andersen,

5
Quindi, più o meno la stessa cosa?
Ryan The Leach,

1
@ pa4080: puoi configurarlo, lessquindi -Rè abilitato di default. Vedi la mia risposta
Peter Cordes,

@RyanTheLeach more e less : la stessa cosa :)
chepner

11

manutilizza less(1)come cercapersone per impostazione predefinita. Usalo al posto di cat. Vedi anche la risposta di @ vidarlo .

Come personalizzare lessper renderlo ancora migliore:

Mi piace alias m=less, quindi è solo un comando di una sola lettera, perché lo scrivo sempre. Mettere |ma alla fine di qualsiasi cosa lo convoglia in un cercapersone.

Potresti mettere opzioni come -iMRj5Xnell'alias (ad esempio alias m='less -iMRX), ma lo faccio con il mio ~/.lesskeyfile. (Vedi lesskey(1)).

  • -i: le ricerche non fanno distinzione tra maiuscole e minuscole (a meno che non si utilizzino lettere maiuscole)
  • -M: linea di stato più lunga, con numero di riga e percentuale del file
  • -R: consenti alcuni codici di controllo, in modo da poter reindirizzare i comandi colorati in meno.
  • -X: non passare alla schermata "alternativa" dell'emulatore di terminale, quindi qualunque cosa tu stia guardando sarà ancora lì quando qesci less. (ottimo per le pagine man dopo aver trovato l'opzione che desideri e vuoi guardarla mentre la digiti.)
  • -j5: le ricerche posizionano la linea di destinazione nella riga 5 anziché nella parte superiore dello schermo. In questo modo puoi vedere il contesto su entrambi i lati del risultato della ricerca. (A volte lo cambio in modo interattivo, digitando -j40o qualcosa all'interno less, se è più utile vedere il contesto prima di un hit di ricerca).

Ho anche lego .a next-file, e ,per prev-file, perché le associazioni di default sono due personaggi separati, che sono molto più lento a digitare: :ne :p.


Questo è il mio .lesskey:

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X

Esegui lesskeyper "compilare" in un ~/.less.

Questo probabilmente contava più di 20 anni fa, ma lesslegge quel file binario invece di analizzare un file di configurazione di testo ogni volta che si avvia.


@Dan: aggiunta una riga in alto in modo che questa risposta possa essere autonoma come risposta alla domanda. Pensavo che lasciare quella parte implicita sarebbe stato sufficiente data l'altra risposta, ma se non ho alcuna obiezione a renderla esplicita se ti dava fastidio.
Peter Cordes,
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.