Счетчик строк stdout в реальном времени

Есть скрипт, который что-то делает и в stdout выплевывает строчки. (например tail -f /var/log/messages).
Мне содержимого этого stdout не нужно, но нужно в реальном времени смотреть сколько строчек было выплюнуто в stdout.

Есть такие утилиты или скрипты? а то так не хочется самостоятельно велосипед писать.

UPD. решенно силами awk и символа возврата каретки
tailf /some/file.log | awk 'BEGIN {C=0} ; {printf "\r"C++" "}'
UPD2 hacked до использования встроенных переменных:
tailf /some/file.log | awk '{printf "\r"NR}'
15 октября 2010 в 11:18
1
bliznezz 29,7
круть, надо запомнить. bondbig,

отсортировано по дате по оценке
ответы (3)

+1
burdakovd #
Можно сделать
cat -n — чтобы номера строк выводились
grep или sed, чтобы убрать всё кроме номеров строк

И потом всё это в пайп объединить
по второму пункту вот аналогичный вопрос: stackoverflow.com/questions/1593871/remove-strings-after-each-first-word-in-a-text-file burdakovd, 15 октября 2010 в 12:08
А вот и ответ: awk "{print NR}", даже cut не нужен burdakovd, 15 октября 2010 в 12:10
Точнее cat не нужен.

tail -f /var/log/messages | awk "{print NR}"
burdakovd, 15 октября 2010 в 12:11
за cat -n спасибо. я бы по незнанию egrep -n '(.|^&)' пользовался бы. но сейчас познаю силу awk bliznezz, 15 октября 2010 в 12:12
0
bondbig #
Всё же проще таки изобрести колесо.
Набросок (в качестве идеи):
tail -f /some/path/file.log >/tmp/tail.txt &
[1] 17855
while true; do wc -l /tmp/tail.txt;sleep 3;done
29 /tmp/tail.txt
29 /tmp/tail.txt
29 /tmp/tail.txt
44 /tmp/tail.txt
72 /tmp/tail.txt

у меня скрипт генерит около 40 млн строк, объем временного файла будет расти до 3гиг :( bliznezz, 15 октября 2010 в 11:37
дык отгрепайте после tail, оставив один символ (пробел/точку/etc.) на строку. bondbig, 15 октября 2010 в 11:46
как-то так:
tail -f /nginx/logs/access.log | cut -d '-' -f2 >/tail.txt &
[1] 20861
watch -t  'cat /tmp/tail.txt | wc -l'


По своим строчкам сами посмотрите, как вам сделать cut, чтобы осталась пустота.
bondbig, 15 октября 2010 в 11:58
0
Kastrulya #
есть утилитка pv, которая делает это.
debian.pro/527

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.