文本处理之 sort
本文主要介绍一下 linux 下 sort 命令的简单用法
下面通过一个例子说明一下 sort 命令的最常用的用法。
在 /root 下 ll 命令:
$ ll
total 44
drwx------ 7 root root 4096 Oct 23 11:46 ./
drwxr-xr-x 25 root root 4096 Apr 13 2015 ../
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
drwx------ 3 root root 4096 Jul 1 00:18 .cache/
drwx------ 4 root root 4096 Jul 1 00:40 .config/
drwx------ 3 root root 4096 Oct 23 11:46 .dbus/
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
drwx------ 2 root root 4096 Oct 23 08:36 .pulse/
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
drwx------ 2 root root 4096 Jul 18 15:00 .ssh/
首先需要先筛选出文件,而不是文件夹,区别在于第一个符号是 - 而不是 d
所以可以先用 grep 命令进行筛选:
$ ll | grep -e ^'-'
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
其中 -e 后面跟一个正则表达式, ^'-' 指的就是以'-' 开头的所有行。
接下来,如果想对这些文件的大小进行排序:
$ ll | grep -e ^'-' | sort -n -k 5
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
其中, -n 说明按数值进行排序, -k 5 可以简单理解为对每一行的第五列进行排序,这一列代表了文件的大小。
如果想从大到小排序,只需加上 -r 选项即可:
$ ll | grep -e ^'-' | sort -n -R -k 5
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
接下来,如果想对文件名进行排序,默认就是按字母类型排序的:
$ ll | grep -e ^'-' | sort -k 9
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
当然也可以对第6行中的月份进行排序:
$ ll | grep -e ^'-' | sort -M -k 6
-rw------- 1 root root 256 Apr 13 2015 .pulse-cookie
-rw-r--r-- 1 root root 140 Apr 19 2012 .profile
-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc
-rw------- 1 root root 317 Aug 5 13:30 .bash_history
浙公网安备 33010602011771号