Como eu filtro stdout de um programa através do grep enquanto ainda controlo o programa?

5

Estou tentando filtrar a saída do media player mpv, removendo uma linha em particular, mas quando faço isso não consigo controlar o mpv com o teclado. Aqui está o comando:

mpv FILE | grep -v 'Error while decoding frame'

Quando eu executo o comando, tudo é exibido corretamente, mas não consigo usar as teclas LEFT e RIGHT para varrer o arquivo ou fazer qualquer outra coisa com o teclado. Como faço para filtrar a saída do programa, mantendo o controle dele?

    
por jaxuru 30.06.2015 / 06:29

2 respostas

3

Você pode dar ao mpv um terminal falso usando o programa script (1), por exemplo:

script -c 'mpv FILE' /dev/null | grep -v 'Error while decoding frame'

Para o Mac OS X, a sintaxe parece ser :

script /dev/null mpv 'FILE' | grep -v 'Error while decoding frame'

[editar: veja também Truque um aplicativo para pensar que seu stdin é interativo para soluções adicionais]

    
por 30.06.2015 / 07:02
0

Você pode usar nohup mpv FILE . A saída é gravada em nohup.out , que você pode filtrar usando tail e grep :

nohup mpv FILE
tail -f nohup.out |grep -v 'Error while decoding frame'
    
por 30.06.2015 / 09:30