前言
有时候在linux服务器上面会需要进行排序的操作,肉眼看很容易出错或者疏忽,结合sort命令可以高效的实现我们的排序效果,所以写一篇文章来整理一下sort的使用,希望对各位读者有所帮助。
1、查看当前目录中占用磁盘空间最大前三个的文件或者目录
du -sh * | sort -hr | head -n 3
下面来分析一下命令
du -sh *:
du:磁盘使用情况(Disk Usage)命令,用于估算文件或目录在磁盘上的使用空间。
-s:汇总(summarize)选项,表示只显示当前目录的总磁盘使用量,不显示子目录的详细使用情况。
-h:让输出以易读的格式显示,例如 K(千字节)、M(兆字节)、G(吉字节)等。
*:表示当前目录下的所有文件和目录。
sort -hr:
sort:对输入进行排序的命令。
-h:让 sort 命令能够识别易读的数字格式(如 K、M、G),并按数值大小排序。
-r:反向(reverse)排序,即从大到小。
head -n 3:
head:显示文件的开头部分的命令。
-n 3:选项,指定 head 命令显示的行数
这里需要注意,默认情况sort命令是基于第一列进行大小排序的,如果结果集涉及K
、M
、G
这些单位换算,那么单纯的数字排序是不能解决问题的(当然了,如果统一单位的话就没有这个问题存在了),我们一定要加上h
参数让sort命令帮助我们做单位的转换
2、 使用-k
参数根据指定列进行排序
默认情况下,sort是取第一列来进行排序的,如果我们希望排序的列不是在首列就会比较麻烦。
假如某个文件中有以下内容,我们希望按照第二列的文件大小进行排序,可以结合-k 2
进行操作
100 52K dir1
200 6.8M dir2
300 4.0K file10
400 20K file4
500 16K file6
600 12K file8
700 4.0K fileName.txt
800 0 sortTest
cat sortTest | sort -k2 -hr
image.png
网友评论