如何在 lsof 中显示“人类可读”的大小 | grep /var*

如何在 lsof 中显示“人类可读”的大小 | grep /var*

我目前正在尝试查看所有使用 /var 挂载的文件。

lsof | grep /var*它显示大小(以字节为单位)时。如何以 MB 为单位显示文件大小。

谢谢。

答案1

从 GNU Coreutils 版本 8.21(2013 年 12 月发布)开始,有一个名为numfmt(=数字格式)的新标准程序。它会完全按照您的意愿行事。

例子:

lsof | grep /var*  | numfmt --field=8 --to=iec | head

该参数--to接受iec(其中 1K=1024B)或si(其中 1K=1000)。还有一些其他选项,更多信息请参见此处: http://www.gnu.org/s/coreutils/numfmt

(免责声明:我编写了 的初始实现numfmt)。

答案2

尝试这个:

| awk '{$7=$7/1048576 "MB"; print}'

或更短:

| awk '{$7=$7/1048576 "MB"}1'

答案3

您可以使用 awk 将字节转换为 MB。

像这样的东西应该以 MB 为单位显示大小。

lsof | grep /var* | awk '{for(i=1;i<=6;i++){printf "%s ", $i}; print $7/1048576 "MB" " "$8" "$9 }'

它将打印直到第 7 个字段的所有字段,然后将其除以 1048576 以获得以 MB 为单位的大小,然后显示剩余的两个字段。

相关内容