Como preservo a saída colorida ao canalizar para 'menos -R'?

6
$ ffmpeg -v debug ... 

Saída colorida.

$ ffmpeg -v debug ... |& less -R

Saída fraca.

Como eu faço a saída colorida enquanto a canalizo para alguma coisa?

    
por Vi. 22.08.2014 / 20:15

2 respostas

9

Para comandos que não têm uma opção semelhante a --color=always , você pode fazer, por exemplo com o seu exemplo:

script -c "ffmpeg -v debug ..." /dev/null < /dev/null |& less -R

O que o script faz é que ele executa o comando em uma sessão de terminal.

EDIT: Em vez de uma string de comando, se você quiser fornecer uma matriz, o script zsh wrapper a seguir parece funcionar:

#!/usr/bin/env zsh
script -c "${${@:q}}" /dev/null < /dev/null |& less -R
    
por 22.08.2014 / 20:36
0

Como alternativa a script , que espera linha de comando como uma string em vez de uma matriz normal, existe um modo especial de reptyr :

reptyr -L ffmpeg -v debug ... < /dev/null |& less -R

Observe que nem todas as versões de reptyr têm a opção -L de trabalho e aceitam < /dev/null normalmente. Veja meu pedido de pull para isso.

    
por 23.08.2014 / 01:37