現在/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
受け入れます。これにはいくつかの異なるオプションがあります。詳細は次のとおりです。
iec
si
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)を取得し、残りの2つのフィールドを表示します。