Skip to Content

简单实用的小命令 - sort

我们执行ls命令一般会有类似下面的输出:

$ ls -lh
total 1.1M
-rw-r--r-- 1 yt yt  512 Nov  5 23:29 a.txt
-rw-r--r-- 1 yt yt 1.0K Nov  5 23:29 b.txt
-rw-r--r-- 1 yt yt 5.0K Nov  5 23:30 c.txt
-rw-r--r-- 1 yt yt 1.1M Nov  5 23:31 d.txt

假设我们想对文件大小进行排序,可以用sort命令:

$ ls -lh | sort -k 5
total 1.1M
-rw-r--r-- 1 yt yt 1.0K Nov  5 23:29 b.txt
-rw-r--r-- 1 yt yt 1.1M Nov  5 23:31 d.txt
-rw-r--r-- 1 yt yt 5.0K Nov  5 23:30 c.txt
-rw-r--r-- 1 yt yt  512 Nov  5 23:29 a.txt

上面命令中的sort参数 -k 5 表示按第5列排序,也就是按文件大小排序。

在上面的命令中,sort虽然按文件大小列排序了,但只是按字面值排的,并没有算上单位,所以我们还要再加个参数,最终命令如下:

$ ls -lh | sort -k 5 -h
total 1.1M
-rw-r--r-- 1 yt yt  512 Nov  5 23:29 a.txt
-rw-r--r-- 1 yt yt 1.0K Nov  5 23:29 b.txt
-rw-r--r-- 1 yt yt 5.0K Nov  5 23:30 c.txt
-rw-r--r-- 1 yt yt 1.1M Nov  5 23:31 d.txt

这次sort命令就是真正的按文件大小排序了。

sort命令还可以对很多内容,按很多方式进行排序,我们这里只是以ls命令的输出作为示例简单的介绍了下。

建议大家都看看sort命令的man文档,很简单。