Сделайте хвост-F звуковым сигналом однажды для каждой строки:
bel=`echo foo | tr -c -s '\007' '\007'`
tail -F file | sed "s/\$/$bel/"
Что касается использования оболочки для вычислений скользящего среднего значения вот сценарий удара, который отслеживает количество R0 и строк R1 в движущемся окне $windowsize размера. Отслеживающие переменные являются r0sum и r1sum.
windowsize=10
declare -ai isr0line isr1line r0sum r1sum i
for ((i=0; $i<$windowsize;i+=1)) ; do isr0line[$i]=0; isr1line[$i]=0; done
i=0
while read line
do
r0sum=$(($r0sum - ${isr0line[$i]}))
r1sum=$(($r1sum - ${isr1line[$i]}))
case "$line" in
R0*) isr0line[$i]=1; isr1line[$i]=0; ;;
R1*) isr1line[$i]=1; isr0line[$i]=0; ;;
*) isr0line[$i]=0; isr1line[$i]=0; ;;
esac
r0sum=$(($r0sum + ${isr0line[$i]}))
r1sum=$(($r1sum + ${isr1line[$i]}))
echo "R0 lines $r0sum R1 lines $r1sum"
i=$((($i + 1) % $windowsize))
done
Насколько я знаю, нет. То, что Вы пытаетесь выполнить, является возможным объединением нескольких команд, как Вы в настоящее время делаете, хотя я не знаю о других приложениях, которые предоставили бы Вам данные, легче проанализировать (редактор: другой ответ, предложенный iftop, который я не знал, добавил способный каналом однострочный текстовый режим вывода). С некоторыми умными сценариями оболочки, переданными по каналу данными и небольшим количеством ручного форматирования, Вы могли добраться, по крайней мере, близко к выводу, который Вы ищете.
Ваш поиск чего-то, что показывает и сеть и статистику файла - который был бы обеспечен двумя различными частями операционной системы - кажется, противостоит некоторым арендаторам 'Философии UNIX':
- Заставьте каждую программу сделать одну вещь хорошо. Чтобы сделать новое задание, создайте заново, а не усложнить старые программы путем добавления новых опций.
- Ожидайте, что вывод каждой программы станет входом другому, пока еще неизвестному, программа. Не создавайте помехи выводу посторонней информацией.
Это особенно очевидно в программах что синтезируемый текст, как lsof. Вы обычно не видите *программы консоли NIX, обеспечивающие пользовательский интерфейс так же как данные, которые будут переданы по каналу в другую программу или возможно сценарий, использующий команды оболочки как сокращение для создания их собственных специфически адаптированных выводов.
Doug McIlroy суммировал свой более ранний оператор несколько лет спустя:
Запишите программы, которые делают одну вещь и делают это хорошо. Запишите программы для сотрудничества. Запишите программы для обработки текстовых потоков, потому что это - универсальный интерфейс.
В то время как это не может помочь Вам получить отформатированный вывод, Вы ищете, Искусство Программирования UNIX является хорошим чтением, и где я нашел источники для тех кавычек.
atop
идет некоторым путем к предоставлению Вас, что Вы хотите, хотя это не было бы столь же конкретно как ломающийся ввод-вывод дескриптором файла. Для получения всей сетевой статистики, необходимо применить патч ядра.
iptraf может быть очень полезными и находящими пожирателями ресурсов пропускной способности.