Для эталонного скрипта мне нужно извлечь iowait% сразу после небольшой операции.
На данный момент лучший способ, который я нашел, был таким: IOWAIT=top -bn2 | awk '$1~/Cpu/ {print $6}' | sed -n '2p' | tr -d '%wa,'
Правильный вывод что-то вроде 2.1:
Во-первых, если я не уточнил "-bn2", не знаю почему, это всегда 0,1%, если я беру взятие только 1 раз. Итак, я беру захват два раза, затем я awk, чтобы получить поле iowait, затем я отправляю вторую строку, а затем удаляю «% wa»
К вашему сведению, вот результат top -bn2 | grep Cpu
Cpu(s): 2.8%us, 0.4%sy, 0.0%ni, 96.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st<br>
Cpu(s): 0.2%us, 2.9%sy, 0.0%ni, 87.1%id, 9.5%wa, 0.0%hi, 0.3%si, 0.0%st
Моя проблема заключается в следующем: когда я получаю один столбец на 100,0% (например, в режиме ожидания), он сдвигает номер столбца, поэтому мой awk больше не работает, и я получаю поле «0,0% hi».
Мои вопросы следующие:
-Как сказать awk взять столбец с «% wa»?
Если у кого-то есть лучший подход к тому, что я хочу сделать, я, конечно, очень открыт для предложений!
Спасибо