
メールボックスサイズの出力ファイルを並べ替えてみてください。
[email protected], 1.35 MB
[email protected], 2.19 GB
[email protected], 0 B
[email protected], 0 B
[email protected], 1.66 MB
[email protected], 0 B
[email protected], 47.84 KB
[email protected], 1.28 MB
[email protected], 1.76 MB
フォーラムを検索しましたが、常にls
出力からファイルサイズを取得します。これは数値文字列です。
私が試したこと:
sort -k 2,3 mailbox-size.csv
私の目標は最終的に「平均」サイズを見つけることですが、今はリストをソートしようとしています。
答え1
人間が読める伝統的な文字列を取得するために値と単位の間のスペースを削除するには、次のようにします。-h, --human-numeric-sort
ロゴからsort
。
awk '{print $1 " " $2 $3}' mailbox-size.csv > mailbox-size-2.csv
sort -h -k 2 mailbox-size-2.csv
[email protected], 0B
[email protected], 0B
[email protected], 0B
[email protected], 47.84KB
[email protected], 1.28MB
[email protected], 1.35MB
[email protected], 1.66MB
[email protected], 1.76MB
[email protected], 2.19GB
使用numfmt
その後、必要に応じて人間が読める文字列を数値に戻すことで、さらに数学演算を容易にすることができます。
numfmt --from=iec --suffix B --field=2 < mailbox-size-2.csv | sed s/B$//
[email protected], 1415578
[email protected], 2351494595
[email protected], 0
[email protected], 0
[email protected], 1740637
[email protected], 0
[email protected], 48989
[email protected], 1342178
[email protected], 1845494
このsed s/B$//
コマンドは、末尾のB
バイトサフィックスを削除し、追加の数学操作を容易にするために整数バイト数だけを残します。