Как заставить grep запустить команду после того, как найден первый ответ в строке-буфере? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть grep, который ищет слово воспроизведения, которое появляется только один раз при выводе команды из mplayer и работает в линейном буфере, потому что вывод команды mplayer постоянно меняется.Но при первом обнаружении он требует, чтобы я выполнил команду echo.

youtube-dl -q -f 95 https://www.youtube.com/watch?v=hHW1oY26kxQ -o- | mplayer -novideo -msglevel all=5 -cache 1024 - | grep --line-buffered playback && echo Done

Это то, что я сейчас пытаюсь использовать, но это не работает из-за того, что я полагаю, что grep не думает, что этозакончил смотреть.

Заранее спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Измените && echo Done на | ( set /P "=" & echo Done ), то есть:

youtube-dl -q -f 95 https://www.youtube.com/watch?v=hHW1oY26kxQ -o- | mplayer -novideo -msglevel all=5 -cache 1024 - | grep --line-buffered playback | ( set /P "=" & echo Done )

Команда set /P ожидает получения строки от grep и затем переходит к команде echo.

...