Eu queria saber se seria possível executar meus próprios comandos sobre o less
comando. Com isso quero dizer ser capaz de abrir um arquivo less
e executar algum comando meu sobre o que estou vendo (ou até mesmo o arquivo inteiro, se necessário) enquanto mantém a tela como está. Por exemplo, eu gostaria de poder executar scripts diferentes que colorissem o que estou vendo atualmente de maneiras diferentes ou mostrar/ocultar certas linhas no arquivo.
Eu sei que posso fazer uma execução diferente a cada vez, cat <file> | my-script | less -R
mas isso não me proporciona a experiência de editor que isso less
proporciona.
Responder1
Você pode usar o |
comando in less para canalizar o arquivo por meio de um programa diferente.
- Imprensa
|
. - Insira uma letra de marca ou
^
ou$
ou.
. - Digite o comando shell para executar.
- Imprensa Enter.
Somente a parte do arquivo entre a posição atual e a marca é canalizada. A marca pode ser ^
ou $
significar o início e o fim do arquivo, respectivamente, ou uma posição definida com o m
comando. A posição atual é a linha na parte inferior da tela se a marca estiver antes dela, e a linha na parte inferior da tela caso contrário. Em particular, para canalizar o arquivo inteiro, use <|$mycommand
ou >|^mycommand
para definir a posição em uma extremidade do arquivo e a marca na 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 na saída com less, precisará iniciar outra instância, por exemplo rot13 | less
. Ao sair da segunda instância de less, você será levado de volta à primeira. Não há como substituir o conteúdo da instância atual pelos dados canalizados dela. Para ver as cores, lembre-se de correr less -R
.