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

このパラメータは(1K = 1024B)または(1K = 1000)を--to受け入れます。これにはいくつかの異なるオプションがあります。詳細は次のとおりです。 iecsihttp://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)を取得し、残りの2つのフィールドを表示します。

関連情報