Ответ 1
проблема почти наверняка связана с тем, как grep и cut буфером их вывод. вот хак, который должен помочь вам решить проблему, хотя я уверен, что есть более красивые способы сделать это:
tail -f /var/somelog | while read line; do echo "$line" | grep "some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "; done
(не забывайте ; done
в конце команды)
в качестве альтернативы, поскольку gawk
не выполняет буферизацию вывода, вы можете использовать его вместо cut
, чтобы избежать громоздкого цикла while:
tail -f log | grep --line-buffered "some test and p l a c e h o l d e r" | gawk '{print $3,$4,$14}'
просмотрите http://www.pixelbeat.org/programming/stdio_buffering/ для получения дополнительной информации о проблемах с буферизацией.