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


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

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


81


origem


Sua técnica original funcionaria se você instruísse vi a carregar de stdin, fazendo |avi -. - Joe Shaw


Respostas:


No meu sistema man less diz

       s nome do arquivo
              Salve a entrada em um arquivo. Isso só funciona se a entrada for uma
              pipe, não um arquivo comum.

Funciona para mim!


96



bom, obrigado! Funciona um deleite. - Jonathan Day
De alguma forma, isso não funciona para mim - digitar 's' move a janela em uma linha. Eu estou em um Mac - benroth
@benroth: Você provavelmente tem um lesskey arquivo que altera os comandos normais. Vejo man lesskey - RedGrittyBrick
s não funciona para mim também, mas -o file faz. - user1338062
E por que diabos isso não é mencionado quando eu digito 'h' para obter ajuda interativa? +1 se você leu a ajuda interativa e, portanto, não pensou em consultar man less... - Peter V. Mørch


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

Dentro 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 depois:

|$cat > /tmp/foo.txt

o conteúdo do buffer será escrito para /tmp/foo.txt.


20



Esse método pode ser especialmente útil quando você deseja enviar o buffer atual sendo visualizado por outro comando. - Doron Behar


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

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

Felicidades


3





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


0



Obrigado @Dror, mas eu já estou no aplicativo menos, não no prompt bash mais - Jonathan Day
Uma valiosa contribuição para o Q / A. Em vez de iniciar uma questão totalmente separada, as pessoas que precisam de um método para fazer o script de vários arquivos através do Menos visualizador pode se beneficiar muito. Me salvou horas de trabalho (depois de muita pesquisa). Obrigado! - L. D. James


Minha resposta chega um pouco tarde demais eu acredito. Mas apenas para referência em resposta à preocupação do benroth acima: Para os usuários do OSX, há sempre a opção de despejar o conteúdo do pager em um arquivo de log usando a opção "-l" (ler DASH ELL) no prompt do cólon.

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


0





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

-1



Obrigado Mark, mas eu estou olhando especificamente como fazê-lo se eu já estou em menos - Jonathan Day