Предполагая, что файл mpstat-log.txt приведен ниже, как я могу проанализировать результаты файла и получить поле% idle для первых 4 процессоров 0-3.Я предполагаю, что это работа для grep, sed, cut или awk, но у меня недостаточно опыта, чтобы знать, какие утилиты лучше всего использовать для этой работы.
#!/bin/bash
for cpuIndex in {0..3}
do
# Get percent idle from line of specified cpuIndex
cpuPercentIdle= # How to get a desired line and space separated field number?
# Can you do math in a bash script ?
cpuPercentUsed=$((100 - $cpuPercentId))
echo "CPU $cpuIndex : Idle=$cpuPercentIdle, Used=$cpuPercentUsed"
done
done
Вывод сценария:
CPU 0 : Idle=45.18, Used=54.82
CPU 1 : Idle=96.33, Used=3.67
CPU 2 : Idle=95.65, Used=4.35
CPU 3 : Idle=72.09, Used=27.91
Файл: mpstat-log.txt
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
Average: all 10.95 0.00 0.42 0.00 0.04 0.25 0.00 88.34 1586.71
Average: 0 51.50 0.00 3.32 0.00 0.00 0.00 0.00 45.18 0.00
Average: 1 3.67 0.00 0.00 0.00 0.00 0.00 0.00 96.33 2.66
Average: 2 4.35 0.00 0.00 0.00 0.00 0.00 0.00 95.65 0.00
Average: 3 27.57 0.00 0.33 0.00 0.00 0.00 0.00 72.09 997.34
Average: 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10.96
Average: 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 7 0.00 0.00 0.00 0.00 0.00 1.67 0.00 98.33 575.75
Заранее благодарим за любые рекомендации и советы!