Подозрительно кривая и неудобная задача. Подозреваю, что делать надо как-то по-другому, предлагаю написать сюда оригинальную проблему и обсудить, как её решать.
Если очень хочется извращений - можно направить вывод первой команды с помощью `tee` в fifo-файл, а оттуда параллельно считать нужную строку чем-то вроде `sed -n '5p' | cut -d\ -f2`
UPD:
Вопросом заинтересовался мой коллега, и выдал вот такое решение:
tailf access.log | while read -r line ; do
((a++)) ;
nd=$(date "+%s"); [ -z ${ld+x} ] && ld=$nd || if (( $nd-$ld >=10 )); then
echo "$a/10"|bc ; ld=$nd; a=0;
fi;
done
Глядя на которое, становится очевидно, что писать такое на баше всё-таки не надо :)
UPD2:
Второй вариант от коллеги:
tailf access.log | awk 'BEGIN { st=systime(); } { ++count ; ct=systime(); if (ct-st >= 10) { print count/10 ; count=0; st=ct } }'