프로그램을 제어하면서 grep을 통해 프로그램의 표준 출력을 필터링하려면 어떻게 해야 합니까?

프로그램을 제어하면서 grep을 통해 프로그램의 표준 출력을 필터링하려면 어떻게 해야 합니까?

mpv 미디어 플레이어의 출력을 필터링하여 특정 줄을 제거하려고 하는데 이렇게 하면 키보드를 사용하여 mpv를 제어할 수 없습니다. 이것은 명령입니다:

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

명령을 실행하면 모든 것이 올바르게 표시되지만 왼쪽 및 오른쪽 키를 사용하여 파일을 스캔할 수 없거나 키보드로 다른 작업을 수행할 수 없습니다. 프로그램 제어를 유지하면서 프로그램의 출력을 필터링하려면 어떻게 해야 합니까?

답변1

script(1) 프로그램을 사용하여 mpv에 가짜 터미널을 제공할 수 있습니다. 예를 들면 다음과 같습니다.

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

맥 OS X의 경우,구문은 다음과 같습니다.:

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

[편집: 또한 확인해보세요표준 입력이 대화형이라고 생각하도록 애플리케이션을 속입니다.다른 솔루션의 경우]

답변2

당신은 그것을 사용할 수 있습니다 nohup mpv FILE. 출력이 기록되고 다음 을 사용하여 필터링 nohup.out할 수 있습니다 .tailgrep

nohup mpv FILE
tail -f nohup.out |grep -v 'Error while decoding frame'

관련 정보