Преобразуйте байты в Мегабайты или Гигабайты для данных, прибывающих из команды

Я - новичок в сценариях оболочки. Так или иначе у меня есть следующая команда:

кошка/proc/net/dev | TR-d ': |' | awk 'НОМЕР> = 2 {печатают "" 2$ за 1$ "" 10$}'

Это перечисляет следующий вывод:

пакеты байтов поверхности

docker0 2341 387821

lo 208740 208740

enp2s0 53877345926 60003420684

Данные выше показывают в байтах, я хочу, чтобы вывод был в КБ, МБ или ГБ в зависимости от цифр. Например,

пакеты байтов поверхности

docker0 18,73 КБ 3,10 МБ

lo 1,67 МБ 1,67 МБ

enp2s0 431,02 ГБ 480,03 ГБ

Спасибо в усовершенствованном.

0
задан 27 February 2018 в 04:51

1 ответ

numfmt делает объем подъема ниже. Можно сказать этому формат, который Вы хотите, и дополнительно здесь я говорю этому пропускать первую строку и внимание на вторые и третьи поля.

tail -n +2 /proc/net/dev \
| tr -d ':,|' \
| awk '{print $1 " " $2 " " $10}' \
| numfmt --to=iec --header=1 --field=2,3

Если Вы хотите стать намного более сложными, чем это, или если бы Вам нужно это для выполнения лучше, я обратился бы к реальному языку программирования. У них всех есть доступные библиотеки (или созданный в функциях) для того, чтобы сделать этот вид материала, и они сделают это намного быстрее.

3
ответ дан 30 October 2019 в 09:11

Другие вопросы по тегам:

Похожие вопросы: