Возникла надобность чуть изменить поведение программы, самое простое что придумал - следить за выводом и запускать нужную задачу при появлении в выводе определённой подстроки. Какими средствами этого можно добиться?
Парсить вывод команды
в такой формулировке, чем хочешь: sed/awk/perl/bash+grep
если вывод не плейнтекстовый, а какой-нить ncurses'овский, то задача усложняется...
Fat-Zer, яч знаю чем именно можно парсить кучку текста. Хотелось бы понять, как именно парсить постоянно добавляющиеся строчки, одновременно с выводом этих строчек на экран в неизменном виде.
acpid умеет выполнять определённые действия при появлении определённых строчек в логе.
Хотелось бы понять, как именно парсить постоянно добавляющиеся строчки
да то же самое... вот варианты на sed'е и bash'е:
echo -e '1\n2\n3' | sed -ne 'p;s/.*2,*/echo "&\" >>\/tmp\/log/e'echo -e '1\n2\n3' | while read l; do echo "$l"; [[ "$l" = *2* ]] && echo "$l" >>/tmp/log; doneFat-Zer, а с сохранением вывода?
Fat-Zer, а с сохранением вывода?
сохраняет же...
Fat-Zer, сохраняет, но цвета теряются :(
Fat-Zer, сохраняет, но цвета теряются ac
Попробуйте поменять >>/tmp/log на | tee -a /tmp/log.
Fat-Zer, сохраняет, но цвета теряются :(
это уже трабла уровнем выше: большинство программ использующих цвета отключают их, если вывод идёт не на терминал... если они действительно нужны, то --color=y в помощь... или как-то так, но велика вероятность, что парсинг от этого сломется...