Tail -f передается через grep, не выводящий в файл, но выводит на консоль

Я использую следующую команду

tail -f /mydir/myfile | grep "searchterm" >> outfile 

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

 tail -f /mydir/myfile | grep "searchterm" 

Что мне нужно сделать, чтобы заставить мою команду правильно записывать файл?

2 Solutions collect form web for “Tail -f передается через grep, не выводящий в файл, но выводит на консоль”

Если у вас есть GNU grep :

 tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile 

Который напишет каждую строчку для штрафа за производительность.

В качестве альтернативы, подождите больше вывода. Если вы убиваете процессы, просто убейте tail процесс, и буфер должен быть очищен до выхода grep .

Возможно ли, что grep буферизирует вывод, создавая его, как будто его нет? Пытаться:

 tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile 
  • Проводя результат ls в хвост
  • Как заставить Vim вести себя как «tail -f»?
  • Можно ли «перевернуть» символическую ссылку на новый файл, не затрагивая никаких открытых дескрипторов файлов?
  • Мониторинг файла журнала и выполнение различных команд в зависимости от разных условий
  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Как получить строки от 10 до 100 из 200-строкового файла в новый файл
  • Помощь с модификацией команды
  • Трубопровод от grep до awk не работает
  • Периодически получать новые строки из файла, возможно, зависания
  • Создайте список каждого пользователя, которому принадлежит файл в заданном каталоге, а также количество файлов и каталогов, которыми они владеют.
  • Объединение tail && journalctl
  • Linux и Unix - лучшая ОС в мире.