LINUX.ORG.RU

mplayer, grep, awk, notify-send — как их подружить?


0

0

Задача: Слушать интернет-радио через mplayer и выводить в notify-send имя исполнителя и название песни.

Как я слушаю и что пытался сделать:

Код:

mplayer -ao alsa http://radio.spark-media.ru:8000/nashe | grep "StreamTitle=" | awk --field-separator="=" '{print $2}' | notify-send -i dialog-information

Не работает. Почему-то или grep дальше не отдает или awk не берет, до notify-send вывод вообще не доходит.

Вопрос, как заставить сие играть и выводить в notify-send первым аргументом имя исполнителя, а вторым название песни?

Просто mplayer выводит:

Код:

ICY Info: StreamTitle='Пикник - Фиолетово-Чёрный';


Ответ на: комментарий от gotf

Оно просто выводит в нотифай символ "-"

TIT
() автор топика

Не знаю. Чтение мана по awk вообще не показало наличие опции --field-separator.
Попробуй вместо awk использовать cut --delimiter="=" -f2.

ivano
()
Ответ на: комментарий от TIT

Скорее grep ждёт, пока mplayer окончит вывод. А окончит он его, когда закончит играть трек. В случае радио - никогда. Нужно отрезать первые 15 строк. Но как это сделать я уже не помню - погугли.

fractaler ★★★★★
()
Ответ на: комментарий от TIT

Да вам вобще здесь grep не нужен. awk умеет регулярные выражения.

Ваш конвеер должен выглядеть так:

mplayer -ao alsa http://radio.spark-media.ru:8000/nashe | awk --field-separator="=" awk '/StreamTitle=/{print $2; fflush() }' | notify-send -i dialog-information

А может вам нужно будет

mplayer -ao alsa http://radio.spark-media.ru:8000/nashe | awk --field-separator="=" awk '/StreamTitle=/{С="notify-send -i dialog-information"; print $2 | C; close(C) }' |

mky ★★★★★
()
Ответ на: комментарий от fractaler

>Но как это сделать я уже не помню - погугли.

head -n15 если чо :)

nnz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.