Como posso salvar o conteúdo atual de menos em um arquivo?

82

Se eu canalizar os resultados de um comando para less e, em seguida, decidir que quero salvar o conteúdo em um arquivo, isso é possível?

Eu tentei definir uma marca a no final do buffer e, em seguida, retornar ao topo e usar |avi para enviar todo o conteúdo para vi , mas isso não funciona.

    
por Jonathan Day 31.05.2011 / 11:46

6 respostas

97

No meu sistema, man less diz

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

Funciona para mim!

    
por 31.05.2011 / 12:09
21

A resposta aceita não funciona no Mac - como @benroth diz, pressionando s apenas se move para baixo de uma linha - mas você pode usar um método diferente.

Em less --help :

|Xcommand            Pipe file between current pos & mark X to shell command.

e

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

Então, se você for para o topo do buffer ( < ) e, em seguida:

|$cat > /tmp/foo.txt

o conteúdo do buffer será gravado em /tmp/foo.txt .

    
por 18.04.2014 / 19:05
3

Quando seu less é aberto, você pode salvar a saída completa em um arquivo. Como vim , menos suporta comandos.

Basta digitar a chave s , então less perguntará o nome do arquivo onde você deseja salvar o conteúdo, basta digitar o nome do arquivo e digitar Enter .

Felicidades

    
por 12.11.2014 / 20:25
0

Minha resposta chega um pouco tarde demais. Mas apenas para referência em resposta à preocupação de Benroth acima: Para os usuários do OSX, sempre há a opção de despejar o conteúdo do pager em um arquivo de log usando a opção "-l" (leia DASH ELL ) no prompt do ponto-e-vírgula.

O pager pedirá um arquivo de log. Digite e pressione [CR]

    
por 28.12.2015 / 00:27
0

Use o operador > . Por exemplo: less foo.bar > output.txt .

    
por 31.05.2011 / 11:49
-1

Não, se você começou menos, mas se você sabe antes de querer enviá-lo para menos e um arquivo, então você pode usar o comando tee

command | tee out_file | less
    
por 31.05.2011 / 11:51

Tags