sort コマンドが human readable な数値をソートできて便利なのでメモしておく。
Ubuntu のバージョン。
$ cat /etc/os-release | grep VERSION_ID VERSION_ID="20.04"
sort コマンドで human readable な数値をソートする
自分はディレクトリごとのディスク使用量を human readable な形式で表示してザッと見るには du -sh
コマンドを実行する。
du コマンドを -h
オプションを指定して実行すると 892K
みたいに人間が読みやすい形式で表示してくれるけど、ディスク使用量の昇順でソートしようと sort
コマンドを通しても期待どおりにはソートしない。
$ ls a/ b/ c/ d/ $ du -sh ./* 892K ./a 1.6M ./b 31M ./c 4.0K ./d $ du -sh ./* | sort 1.6M ./b 31M ./c 4.0K ./d 892K ./a
sort -n
みたいに文字列を数値と見なしてソートしてもやっぱり期待どおりにはソートしない。
$ du -sh ./* | sort -n 1.6M ./b 4.0K ./d 31M ./c 892K ./a
実は sort コマンドは human readable な数値をソートする -h
オプション (--human-numeric-sort
オプション) が用意されていて、このオプションを使うと human readable な数値を簡単にソートできる。
すごく便利。
$ du -s ./* | sort -h 4.0K ./d 892K ./a 1.6M ./b 31M ./c