小编tvo*_*000的帖子

如何对人类可读的大小进行排序

我基本上是在寻找文件,然后按大小排序。如果我不按人类可读的大小对大小进行排序,则该脚本有效。但我希望大小是人类可读的。如何对人类可读的尺寸进行排序?

例如:

 ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Run Code Online (Sandbox Code Playgroud)

这按预期工作,我的文件大小以字节为单位递增:

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
Run Code Online (Sandbox Code Playgroud)

现在,我希望大小是人类可读的,所以我在 ls 中添加了一个 -h 参数,现在有些文件乱了:

 ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
Run Code Online (Sandbox Code Playgroud)
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

Run Code Online (Sandbox Code Playgroud)

ls find sort

13
推荐指数
3
解决办法
6440
查看次数

标签 统计

find ×1

ls ×1

sort ×1