Execute meus próprios comandos em um arquivo aberto em menos. É possível?

3

Eu queria saber se seria possível executar meus próprios comandos sobre o comando less . Com isso, quero dizer, ser capaz de ter um arquivo aberto em less e, em seguida, executar algum comando meu sobre o que estou vendo (ou até mesmo o arquivo inteiro, se necessário), mantendo a tela como está. Por exemplo, gostaria de poder executar scripts diferentes que coloram o que estou vendo de maneiras diferentes, ou para mostrar / ocultar determinadas linhas no arquivo.

Eu sei que posso sempre fazer uma execução diferente de cat <file> | my-script | less -R , mas isso não me dá a experiência de editor que less fornece.

    
por devoured elysium 12.04.2017 / 21:08

1 resposta

5

Você pode usar o comando | em menos para enviar o arquivo por um programa diferente.

  1. Pressione | .
  2. Insira uma carta de marca ou ^ ou $ ou . .
  3. Digite o comando shell para executar.
  4. Pressione Enter .

Apenas a parte do arquivo entre a posição atual e a marca é canalizada. A marca pode ser ^ ou $ , o que significa o início e o fim do arquivo, respectivamente, ou uma posição definida com o comando m . A posição atual é a linha na tela se a marca estiver antes disso e a linha na parte inferior da tela. Em particular, para canalizar todo o arquivo, use <|$mycommand ou >|^mycommand para definir a posição para uma extremidade do arquivo e a marca para a outra extremidade. Para canalizar apenas as linhas mostradas na tela, use a marca . .

A saída do comando não ficará na tela; Se você quiser navegar pela saída com menos, será necessário iniciar outra instância, por exemplo, %código%. Quando você sair da segunda instância de menos, você será levado de volta ao primeiro. Não há como substituir o conteúdo da instância atual por dados enviados a partir dele. Para ver as cores, lembre-se de executar rot13 | less .

    
por 13.04.2017 / 01:26

Tags