Я хотел бы проследить за изменениями в файле с помощью tail -f
а затем распечатать первую строку, соответствующую команде grep
перед завершением. Какой самый простой способ сделать это? До сих пор я экспериментировал с такими вещами, как:
tail -f foo.log | grep 'bar' | head -1
Однако конвейер просто зависает, предположительно из-за буферизации. Я тоже пробовал
tail -f foo.log | grep --line-buffered 'bar' | head -1
Это выводит строку, но процесс не завершается, пока я не нажму ^ C, предположительно потому, что для завершения head -1
необходима вторая строка ввода. Какой лучший способ решить эту проблему?