Чтение из постоянно изменяющегося файла журнала

Существует /location/of/thefile , который является постоянно меняющимся лог-файлом. Средняя плотность освежения составляет 4 в минуту, возможная максимальная частота обновления может составлять 30-40 в минуту. Каждое обновление добавляет 2-5 строк (среднее), но это может быть сотни в крайних случаях. Каждая строка начинается с метки времени [YYYY-MM-DD HH:MM:SS] за которой следует открытый текст (100-200, максимум несколько сотен символов).

Моя задача – создать простую команду, которая непрерывно следит за этим файлом журнала и отправляет в stdout строки, содержащие bar алфавитного алфавита foo OR . До и после этих (под) строк могут быть любые символы ( \n только после (под) строки, конечно), даже \0 . Капитализация слов может быть всеми возможными вариантами.

Ну, мои идеи для решения всегда содержат системные вызовы для синхронизации, но я не должен их использовать. Пожалуйста, постройте мне простую команду . Спасибо очень много!

    2 Solutions collect form web for “Чтение из постоянно изменяющегося файла журнала”

    Возможно, я не понимаю вопрос, но есть ли причина, по которой вы не можете это использовать?

    tail -f /location/of/thefile | grep -i -E "foo|bar"

    используйте именованный канал следующим образом:

    файл для непрерывного чтения: logfile.txt

    код: (скажем readfile.sh), в то время как read line do echo $ line done <mypipe

    В ракушке:

    mkfifo mypipe ./readfile.sh это заблокирует (не выйдет)

    В оболочке anoher перейдите в тот же каталог.

    tail -f logfile.txt >> mypipe, и это пойдет на задний план

    Готово. все, что входит в файл logfile.txt, будет напечатано через readfile.sh, который не вышел.

    Interesting Posts

    Выполнение chown в скрипте bash вызывает ошибки

    zsh: сделать остановку ALT + BACKSPACE у не буквенно-цифровых символов

    Арифметические операции с expr и переменными

    Как я могу установить youtube-dl на BOSS linux?

    Как использовать маршрутизацию для использования следующего доступного inetface

    найти файлы с более высоким разрешением, чем xxx

    Слияние и добавление таблиц для создания главной таблицы из нескольких таблиц

    Как сделать ISO_Level4_Shift и Lock в xkb?

    (virt-manager: 4796): клиент не смог подключиться к демону D-BUS / Не удалось подключиться к libvirt

    Как установить местоположение файла дампа ядра (и имя)?

    Как разобрать опцию fbmpeg -b:

    Есть ли способ выделить часть строки, где происходит ошибка

    Как поместить переменную внутри cURL?

    Может ли установленная зашифрованная файловая система быть в безопасности от root?

    Чтобы проверить, к какому ресурсу обращается, каким процессом

    Linux и Unix - лучшая ОС в мире.