有没有什么命令可以从 /proc/meminfo 中列出以 MB 而不是 kB 为单位的内存?

有没有什么命令可以从 /proc/meminfo 中列出以 MB 而不是 kB 为单位的内存?

Cat、less、more、head tail 等尝试了所有我知道的选项。找不到如何以兆字节而不是 kB 为单位列出内存。

答案1

找不到如何以兆字节而不是千字节为单位列出内存。

这会将所有kB行转换为MB

awk '$3=="kB"{$2=$2/1024;$3="MB"} 1' /proc/meminfo | column -t

此版本转换为千兆字节:

awk '$3=="kB"{$2=$2/1024**2;$3="GB";} 1' /proc/meminfo | column -t

为了完整性,这将根据需要转换为 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

来源如何将 /proc/meminfo 显示为兆字节,回答者约翰1024

答案2

bash,你可以这样做

#! /bin/bash
kb-to-mb()
{

        echo $1" "$(( $2 / 1024))" "MB

}

exec < /proc/meminfo

while read a b c
do
  if [ o$c = "okB" ]
    then
       kb-to-mb $a $b $c
    else
       echo  $a $b $c
       kb-to-mb $a $b $c
  fi
done | column -t

相关内容