Есть ли другой способ использовать tail -f для работы grep -q &&?

Я нашел это решение: https://stackoverflow.com/questions/7178888/grep-q-not-exiting-with-tail-f

но есть ли другие возможности?

UPD: Я хочу сделать tail -f | grep -q something && echo 'found!' tail -f | grep -q something && echo 'found!' но он не работает, потому что tail -f предотвращает закрытие трубы, поэтому команда echo не может быть выполнена.

2 Solutions collect form web for “Есть ли другой способ использовать tail -f для работы grep -q &&?”

Попробуйте на свой страх и риск:

 tail -n 0 -f /tmp/bar | { grep -q -m1 zoo && echo found ; pkill -P $$ '^tail$' ; } 

Команда pkill необходима, если совпадение находится в последней строке. Но может убить другой tail в фоновом режиме, если он есть у одного и того же родителя.

Я считаю, что вы хотите использовать параметры grep -q или -m . Если вы хотите увидеть соответствующую строку, используйте -m1 , который распечатает строку и выйдет (отправка SIGPIPE в tail , что приведет к ее завершению). Если вы не хотите видеть строку, используйте -q , который будет просто выйти, когда найдет первое вхождение.

  • Интерактивный, скрытый живой хвост из нескольких файлов?
  • Периодически получать новые строки из файла, возможно, зависания
  • Преобразование строк новой строки в нуль-ограничение при использовании хвоста
  • bash syntax - команда обертывания внутри sudo :: tail logs до тех пор, пока строка не будет найдена с таймаутом с использованием Terraform
  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Греп с пробелами внезапно не работает
  • Как заставить Vim вести себя как «tail -f»?
  • Можно ли изменить количество строк по умолчанию хвоста?
  • Как активно grep log за последние 15 секунд для фразы?
  • Каков самый простой способ выполнить текст из хвоста в командной строке?
  • Как начать обработку файла, который еще не создан
  • Linux и Unix - лучшая ОС в мире.