Вопрос по shell скрипту: непрерывная обработка tail -f?

Приветствую!


Хочется странного…


Допустим, у меня в некий файл валятся циферки:
1
2
3
4

Я хочу непрерывно, по мере поступления новых строчек, подсчитывать их среднее. Т.е. чтобы выводилось
1
1,5
2,
2,5

При этом я не хочу проверять файл периодически, а хочу чтобы как только строчка новая появилась, так сразу выдалось значение. Т.е. как tail -f только c дополнительной логикой.
  • Вопрос задан
  • 3365 просмотров
Решения вопроса 1
@1nd1go Автор вопроса
Наше проблему. Я немного слукавил, строчка которую я вызывал была:
tail -f file.txt | awk '{..morestuff..; printf result;}' | awk '{total+=$0;count+=1;print total/count}'

Она не работает из-за того, что первый awk буферизирует выхлоп и не отдает его во второй. Посему правильно делать:
tail -f file.txt | awk '{..morestuff..; printf result; fflush()}' | awk '{total+=$0;count+=1;print total/count}'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Zlobober
Что-то я не втыкаю, какое такое среднее вы считаете, если у вас третье число — 3, а четвертое — 3,5.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы