Тип раздела отличается от типа файловой системы. Выберите тип раздела Linux
.
ext2
и ext4
- файловые системы. Они определяются форматированием, используемым после создания разделов.
Вот грубый способ использования awk:
awk '/^<Overall>/ {
sub("<Overall>", "");
sum += $1;
lines++;
}
END { print sum / lines}'
tags ### this is your input file
Использование awk (при условии, что все, что находится в общих строках, это это и число)
awk 'x+=sub(/<Overall>/,""){y+=$0}END{print "AVG:",y/x}' file
x увеличивается для каждой успешной подгруппы <Всего>
ни с чем. Это означает, что он увеличивается только в строках, содержащих
.
Блок после затем добавляет число, оставшееся в строке, к общему количеству.
END
выполняется в конце программы.
В конце блока печатается среднее значение.
РЕДАКТИРОВАТЬ: для большого количества файлов
awk 'x+=sub(/<Overall>/,""){y+=$0}END{print FILENAME,"AVG:",y/x}' LISTOFFILES
С perl
:
perl -lne 'for (/<Overall>([\d.eE+-]+)/g) {$n++; $sum += $1}
END{print $sum/$n if $n}'
Это дает возможность обрабатывать более одного тега
в строке. [\ d.eE + -] +
является грубым сопоставлением десятичного числа с плавающей запятой (допускает такие вещи, как 12, 1.2, -1E + 20 (хотя также и вещи, которые не являются действительными числами)).
Вот решение, использующее несколько изящных утилит:
grep "^<Overall>\d\+" file | cut -c 10 | paste -s -d + - | bc
bc
, который вычислит сумму