Come faccio a scrivere tutte le righe da meno a un file?


76

Ho inoltrato un comando a less, e ora voglio salvare l'output del comando in un file. Come lo faccio?

In questo caso, non voglio usare tee, voglio una soluzione direttamente da meno, in modo da non dover eseguire nuovamente un comando di lunga durata se ho dimenticato di usare tee.

Questa domanda è simile a questa, l'unica differenza è che voglio salvare tutte le righe, non un sottoinsieme: scrivere le righe in un file da meno

Risposte:


106

Da less, digitare squindi digitare il nome del file in cui si desidera salvare, quindi Enter.
Dalla manpagina, sotto COMMANDS:

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manpagina afferma inoltre che, a seconda della propria installazione, il scomando potrebbe non essere disponibile. In tal caso, potresti andare alla riga 1 con:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

e reindirizza l'intero contenuto catcon:

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

quindi sia:

g|$cat > filename

o:

<|$cat > filename

cioè digitare go <( g o meno di ) | $( pipe poi dollar ) quindi cat > filenamee Enter.
Questo dovrebbe funzionare se l'input è una pipe o un file ordinario.


0

Un modo per farlo senza teeè il seguente.
less /path/to/input > /path/to/output
Quanto sopra sovrascriverà /path/to/outputse esiste già.

Per fare lo stesso, ma aggiungi a /path/to/outputè il seguente.
less /path/to/input >> /path/to/output

Per salvare il testo lessdopo averlo aperto, è possibile utilizzare la funzione Salva file.
Quando dentro less, premere s. Quindi, digitare il nome del file.
Se hai utilizzato una pipe, il file verrà automaticamente scritto nella directory di lavoro.
Se non hai utilizzato una pipe, aprirai un file con il testo (per il quale puoi salvare).
Credo che il file verrà aperto in vim.


4
Voglio una soluzione da lessquando ho già aperto less.
Flimm,

Vedo. Scusa per il fraintendimento. Ho aggiornato la mia risposta.
Nehcsivart,

-2

Non usi meno, usi tee e poi pipe tee per meno.

./program | tee program.out | less


5
Nella domanda, ho specificamente chiesto una soluzione che funzionasse senza che teeuna volta lessfosse già stata aperta.
Flimm,
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.