Почему комбинация tail + grep + cut не работает?

Я хотел, чтобы grep некоторые журналы, а хвост их, и печатать только часть каждой строки, так как строки слишком длинны.

Я не могу понять, почему комбинация, которую я использую, не работает; процедура следующая:

echo 'Jun 29 16:27:00 someip rails[pid]: Killed a transaction Jun 29 16:28:00 someip rails[pid]: Killed a transaction' > /tmp/test # Shows the lines tail -f /tmp/test | grep Killed # Shows the lines grep Killed /tmp/test | cut -c -43 # Shows the lines cat /tmp/test | grep Killed | cut -c -43 # Doesn't show them tail -f /tmp/test | grep Killed | cut -c -43 

Почему последняя комбинация не работает?

One Solution collect form web for “Почему комбинация tail + grep + cut не работает?”

Как отмечается в комментариях, проблема связана с буферизацией. Что вы можете сделать, так это запустить команду с stdbuf как показано здесь .

 stdbuf -i0 -o0 -e0 tail -f /tmp/test | grep Killed | cut -c -43 

На стороне примечания, вы, вероятно, могли бы избавиться от grep и cut трубопровод и использовать:

 stdbuf -i0 -o0 -e0 tail -f /tmp/test | awk '/Killed/{print substr($0,length($0)-43)}' 
  • Проверьте, является ли условие awk совпадением в лог-файле
  • Перенаправление вывода GREP в разные текстовые файлы в зависимости от содержимого захвата
  • Как изменить цвет символа при хвосте и tr
  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Время, необходимое для вывода трубы на голову / хвост
  • Как использовать tail -f с grep для отображения окружающих линий
  • Только кошка из определенной строки X (с рисунком) в другую определенную строку Y (с рисунком)
  • Можно ли «перевернуть» символическую ссылку на новый файл, не затрагивая никаких открытых дескрипторов файлов?
  • $ (tail) в переменную удаления \ n
  • Файл журнала хвоста на нескольких машинах по ssh
  • Окрашивание хвостового выхода с помощью perl
  • Подавлять сообщения об усечении файла при использовании хвоста
  • Linux и Unix - лучшая ОС в мире.