Festival TTS, прочитайте последнюю строку с помощью фильтра awk, используя tail -f - PullRequest
0 голосов
/ 19 декабря 2018

Я уже давно пытаюсь заставить это работать.Всякий раз, когда пишется новая строка, я бы хотел, чтобы фестиваль прочел эту строку для меня.Теперь я не уверен, как это сделать.Я пробовал фестиваль пайпинга с tail -f, но это не работает.У кого-нибудь есть предложения?В настоящее время у меня есть этот код:

tail -f /var/log/fail2ban.log |
awk '/^[0-9.]+[.][0-9]+$/{
    if(!a[$0]++)print "Malicious IP adress " $0 " has been banned."}' RS="[ :/\n]" |
while read line; do
    echo "$line" | festival --tts
done

Я думал о сохранении каждой последней строки в новый файл, чтобы фестиваль читался каждые несколько секунд, но это занимает много файлов и, вероятно, сложнее, чем нужно.Я действительно думаю, что это возможно, но я не уверен, как.

...