У меня есть вывод команды, которая выглядит следующим образом:
hw.sensors.cpu0.temp0=39.00 degC
hw.sensors.acpitz0.temp0=27.80 degC (zone temperature)
Требуемый вывод awk
выглядит следующим образом:
# TYPE hw_sensors gauge
hw_sensors{sensor="cpu0" reading="temp0"} 39
hw_sensors{sensor="acpitz0" reading="temp0"} 27
На данный момент я думаю следующее:немного грязно (я не awk
гуру!), так что мои усилия пока выглядят так:
sysctl hw.sensors | fgrep temp0 | sed 's/\./_/g' | awk '{FS="="; print "# TYPE "$1" gauge\n"$1" "$2}' | sed -E 's/_[[:digit:]]{1,2}.*$//g'
Я думаю, что я мог бы продолжить с большим количеством каналов, но это, скорее всего, неправильный метод!