我有以下命令:
cat /proc/net/dev | tr -d ':,|' | awk 'NR >= 2 {print $1 " " $2 " " $10}'
这列出了以下输出:
面对字节数据包
docker0 2341 387821
lo 208740 208740
enp2s0 53877345926 60003420684
上面的数据以字节为单位显示,我希望根据数字以 KB、MB 或 GB 为单位输出。
例如,
面部字节数据包
docker0 18.73 KB 3.10 MB
lo 1.67 MB 1.67 MB
enp2s0 431.02 GB 480.03 GB
答案1
numfmt
正在执行下面的大部分工作。您可以告诉它您想要的格式,此外,我在这里告诉它跳过第一行,并专注于第二和第三个字段。
tail -n +2 /proc/net/dev \
| tr -d ':,|' \
| awk '{print $1 " " $2 " " $10}' \
| numfmt --to=iec --header=1 --field=2,3
如果您想要实现比这更复杂的功能,或者您需要更好的性能,我会寻找一种真正的编程语言。它们都有可用的库(或内置函数)来执行此类操作,而且它们会做得更快。