Sorting unix命令-按大小排序的目录大小
我使用以下命令:Sorting unix命令-按大小排序的目录大小,sorting,unix,du,Sorting,Unix,Du,我使用以下命令: du -h --max-depth=1 | sort -s 我的结果是: 1.1M ./abcd 1.1M ./efgh 1.1M ./xyxabcd 1.2G ./oleoleole 1.2M ./tests 196K ./super-Package 2.0M ./myjobs-build 但是,我希望按以下尺寸订购: 1.2G ./oleoleole 2.0M ./myjobs-build 1.2M ./tes
du -h --max-depth=1 | sort -s
我的结果是:
1.1M ./abcd
1.1M ./efgh
1.1M ./xyxabcd
1.2G ./oleoleole
1.2M ./tests
196K ./super-Package
2.0M ./myjobs-build
但是,我希望按以下尺寸订购:
1.2G ./oleoleole
2.0M ./myjobs-build
1.2M ./tests
1.1M ./abcd
1.1M ./efgh
1.1M ./xyxabcd
196K ./super-Package
这里-h标志告诉操作系统排序,输入是人类可读的格式
此处-r标志指示按降序排序
样本输出:
Sai Kiran@Windows MINGW32 /bin
$ du -sh * | sort -hr
3.5M msys-2.0.dll
2.3M vimdiff.exe
2.3M vim.exe
2.3M view.exe
2.3M rvim.exe
2.3M rview.exe
2.3M ex.exe
2.1M sh.exe
2.1M bash.exe
2.0M msys-crypto-1.0.0.dll
1.9M msys-perl5_22.dll
1.1M sed.exe
932K gpg.exe
928K msys-svn_subr-1-0.dll
912K msys-iconv-2.dll
816K msys-sqlite3-0.dll
760K winpty-agent.exe
756K sshd.exe
712K winpty.dll
704K msys-svn_wc-1-0.dll
700K ssh.exe
700K slogin.exe
628K rebase.exe
588K openssl.exe
568K gawk-4.1.3.exe
568K gawk.exe
568K awk.exe
557K core_perl
544K msys-asn1-8.dll
508K msys-gmp-10.dll
472K winpty.exe
472K msys-curl-4.dll
452K msys-krb5-26.dll
432K ssh-keyscan.exe
432K cygcheck.exe
428K msys-svn_client-1-0.dll
这里-h标志告诉操作系统排序,输入是人类可读的格式
此处-r标志指示按降序排序
样本输出:
Sai Kiran@Windows MINGW32 /bin
$ du -sh * | sort -hr
3.5M msys-2.0.dll
2.3M vimdiff.exe
2.3M vim.exe
2.3M view.exe
2.3M rvim.exe
2.3M rview.exe
2.3M ex.exe
2.1M sh.exe
2.1M bash.exe
2.0M msys-crypto-1.0.0.dll
1.9M msys-perl5_22.dll
1.1M sed.exe
932K gpg.exe
928K msys-svn_subr-1-0.dll
912K msys-iconv-2.dll
816K msys-sqlite3-0.dll
760K winpty-agent.exe
756K sshd.exe
712K winpty.dll
704K msys-svn_wc-1-0.dll
700K ssh.exe
700K slogin.exe
628K rebase.exe
588K openssl.exe
568K gawk-4.1.3.exe
568K gawk.exe
568K awk.exe
557K core_perl
544K msys-asn1-8.dll
508K msys-gmp-10.dll
472K winpty.exe
472K msys-curl-4.dll
452K msys-krb5-26.dll
432K ssh-keyscan.exe
432K cygcheck.exe
428K msys-svn_client-1-0.dll
只需以字节打印
du
,使用awk对数据进行排序和后处理
:
du --max-depth=1 |
sort -n -k1 |
awk -v u="K M G T" 'BEGIN{split(u, units);}
{ while($1 > 1024) {$1/=1024; unit++} $1=$1 FS units[unit]; unit=0 }
1'
试验
因此,我们:
$ du -h --max-depth=1
580K ./a1
8,0K ./a3
848M ./a2
849M .
现在我们看到:
$ du --max-depth=1 | sort -n -k1 | awk -v u="K M G T" 'BEGIN{split(u, units);} { while($1 > 1024) {$1/=1024; unit++} $1=$1 units[unit]; unit=0 }1'
8 ./a3
580 ./a1
847.719K ./a2
848.297K .
只需以字节打印
du
,使用awk对数据进行排序和后处理
:
du --max-depth=1 |
sort -n -k1 |
awk -v u="K M G T" 'BEGIN{split(u, units);}
{ while($1 > 1024) {$1/=1024; unit++} $1=$1 FS units[unit]; unit=0 }
1'
试验
因此,我们:
$ du -h --max-depth=1
580K ./a1
8,0K ./a3
848M ./a2
849M .
现在我们看到:
$ du --max-depth=1 | sort -n -k1 | awk -v u="K M G T" 'BEGIN{split(u, units);} { while($1 > 1024) {$1/=1024; unit++} $1=$1 units[unit]; unit=0 }1'
8 ./a3
580 ./a1
847.719K ./a2
848.297K .
sort
命令将仅按照手册页中的说明对输出文件的行进行排序:
排序-对文本文件的行进行排序
当您想按大小对文件进行排序时,只需使用带有-S
开关的ls
命令:
-s、 --尺寸
以块为单位打印每个文件的分配大小
-S按文件大小排序,第一个最大
sort
命令将仅对输出文件的行进行排序,如手册页中所述:
排序-对文本文件的行进行排序
当您想按大小对文件进行排序时,只需使用带有-S
开关的ls
命令:
-s、 --尺寸
以块为单位打印每个文件的分配大小
-S按文件大小排序,第一个最大
您可以尝试
du-h--max depth=1 | sort-hr您可以尝试du-h--max depth=1 | sort-hr不是编程问题-尝试?不是编程问题-尝试?这是2小时前另一位用户回答的。我不明白为什么这是一个被接受的答案,除了被问者和回答者来自同一个城市。我验证了这个回答,因为它符合我的需要。其他的回答对于我的简单需求来说太罗嗦了。这是2小时前另一个用户回答的。我不明白为什么这是一个被接受的答案,除了被问者和回答者来自同一个城市。我验证了这个回答,因为它符合我的需要。其他的回答对我的简单需求来说太罗嗦了。