Я - новичок в сценариях оболочки. Так или иначе у меня есть следующая команда:
кошка/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 ГБ
Спасибо в усовершенствованном.
numfmt
делает объем подъема ниже. Можно сказать этому формат, который Вы хотите, и дополнительно здесь я говорю этому пропускать первую строку и внимание на вторые и третьи поля.
tail -n +2 /proc/net/dev \
| tr -d ':,|' \
| awk '{print $1 " " $2 " " $10}' \
| numfmt --to=iec --header=1 --field=2,3
Если Вы хотите стать намного более сложными, чем это, или если бы Вам нужно это для выполнения лучше, я обратился бы к реальному языку программирования. У них всех есть доступные библиотеки (или созданный в функциях) для того, чтобы сделать этот вид материала, и они сделают это намного быстрее.