メールボックスのサイズで出力を並べ替えてみてください。

メールボックスのサイズで出力を並べ替えてみてください。

メールボックスサイズの出力ファイルを並べ替えてみてください。

[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バイトサフィックスを削除し、追加の数学操作を容易にするために整数バイト数だけを残します。

おすすめ記事