私は基本的にファイルを探して、サイズでソートしています。人間が読めるサイズでサイズをソートしなければ、スクリプトは機能します。しかし、サイズは人間が読めるサイズにしたいです。人間が読めるサイズをソートするにはどうすればよいですか?
例えば:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
これは期待どおりに機能し、ファイルのサイズはバイト単位で昇順になりました:
1.txt 1
test.txt 3
bash.sh* 573
DocGeneration.txt 1131
andres_stuff.txt 1465
Branches.xlsx 15087
foo 23735
bar 60566
2016_stuff.pdf 996850
さて、サイズを人間が読めるようにしたいので、lsに-hパラメーターを追加しましたが、いくつかのファイルが故障しています:
ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
1.txt 1
DocGeneration.txt 1.2K
andres_stuff.txt 1.5K
test.txt 3
Branches.xlsx 15K
foo 24K
bar 60K
bash.sh* 573
2016_stuff.pdf 974K
ls
出力の5列目にあると
du
代わりに使用ls
することをお勧めします。
find
「S -printf
そのと%p
し、%s
フォーマッタ(サイズの『ヒト化』が続きます)。
-k 5
—それはどのように機能しますか?