Записывать последние N строк с irssi в режиме реального времени

Я очень новичок в irssi (и IRC вообще), и мне нужно записать только последнее количество строк из irssi в текстовый файл, но я не могу найти никакой информации о том, как сделать что-то подобное – будь то встроенные функции или сценарий.

То, что я хочу сделать, – накладывать последние 10 или около того строк чата на видео в реальном времени. Для этого я могу использовать фильтр ffmpeg, который обновляется при изменении текстового файла на диске. Поэтому я хочу постоянно писать последние 10 строк из активной сессии irssi в текстовый файл.

Как я мог это сделать?

Если вы запустите вывод irssi в команду tail вы можете получить последнее количество X строк, например. cmd | tail -10 cmd | tail -10 .

пример

Использование команды seq в качестве подставки для вашей команды irssi . Команда seq будет генерировать последовательность чисел от 1 до 100, в приведенном ниже примере.

 $ seq 100 | tail -10 91 92 93 94 95 96 97 98 99 100 

Чтобы выгрузить его в файл, /var/log/mychat.log , вы можете перенаправить вывод из tail с помощью > .

 $ seq 100 | tail -10 > afile $ more afile 91 92 93 94 95 96 97 98 99 100 

Если вы хотите увидеть вывод при записи в файл журнала, вы можете использовать команду tee вместо перенаправления файлов, > .

 $ seq 100 | tail -10 | tee afile 91 92 93 94 95 96 97 98 99 100