Я хочу извлечь все миллисекундные значения для прыжков, которые генерирует traceroute в Linux (версия 2.0.21). Ожидаемый вывод, который я хочу получить, выглядит следующим образом:
xx
xx
xx
xx
, где xx обозначает миллисекунды для каждого перехода в выполнении traceroute , без пробелов до или после. Для справки, пример чистого traceroute
вывода:
2 100.66.0.254 (100.66.0.254) 13.592 ms 100.66.0.208 (100.66.0.208) 15.711 ms 100.66.0.216 (100.66.0.216) 21.187 ms
3 100.66.0.21 (100.66.0.21) 21.266 ms 100.66.0.31 (100.66.0.31) 21.223 ms 100.66.0.29 (100.66.0.29) 21.183 ms
Я пытался решить этот код, который не работает для всех выходных данных traceroute
.
(вход)
traceroute adomain.com | awk '!/traceroute/ {print $4;'}
Поле $4
не всегда является значением в миллисекундах, в зависимости от характеристик скачка. См. Ниже:
(Вывод)
33.252
24.905
23.776
25.157
(xxx.xxx.xxx.xxx)
(xxx.xxx.xxx.xxx)
*
*
(xxx используется для искажения рассматриваемого IP).
Итак, выше вы можете видеть это для последних четырех записи Я не получаю значения в миллисекундах.
Есть ли для этого решение awk или sed?
PS Я публикую это в StackOverflow, потому что эта задача является частью сбора данных. задача, и данные будут использоваться в более широком контексте программирования.