如何将/ proc/meminfo显示为兆字节

jav*_*b17 15 unix shell

我想感谢你帮助我解决我的相关问题.我知道如果我做一个cat/proc/meminfo它只会以kb显示我怎么能以mb显示?我真的很想为此使用cat或awk.

Joh*_*024 23

这会将任何kB行转换为MB:

awk '$3=="kB"{$2=$2/1024;$3="MB"} 1' /proc/meminfo | column -t
Run Code Online (Sandbox Code Playgroud)

此版本转换为千兆字节:

awk '$3=="kB"{$2=$2/1024^2;$3="GB";} 1' /proc/meminfo | column -t
Run Code Online (Sandbox Code Playgroud)

为完整起见,这将根据需要转换为MB或GB:

awk '$3=="kB"{if ($2>1024^2){$2=$2/1024^2;$3="GB";} else if ($2>1024){$2=$2/1024;$3="MB";}} 1' /proc/meminfo | column -t
Run Code Online (Sandbox Code Playgroud)

  • 我将如何在GB中进行操作 (2认同)

phu*_*clv 5

您可以使用该numfmt工具

$ cat /proc/meminfo | numfmt --field 2 --from-unit=Ki --to-unit=Mi | sed 's/ kB/M/g'
MemTotal:          128692M
MemFree:           17759M
MemAvailable:      119792M
Buffers:            9724M
...
$ cat /proc/meminfo | numfmt --field 2 --from-unit=Ki --to=iec | sed 's/ kB//g'
MemTotal:            126G
MemFree:             18G
MemAvailable:        118G
Buffers:            9.5G
...
$ cat /proc/meminfo | numfmt --field 2 --from-unit=Ki --to-unit=Gi | sed 's/ kB/G/g'
MemTotal:             126G
MemFree:              18G
MemAvailable:         117G
Buffers:              10G
...
Run Code Online (Sandbox Code Playgroud)