分类: LINUX
2009-05-07 08:39:58
sort命令排列文本行,并把文件打印输出到屏幕上。sort命令提供了一种以字母或者数字顺序快速组织数据的方法。默认方式下,sort命令使用white space来分割文件中的不同域。
命令格式:
sort –options filenames
选项
可用的选项包括定义排序的类型、从哪个域开始排序。
-n 以数字方式排序
(+|-)n以n个分隔符开始(+n)、结束(-n)的域排序
-r 反向排序
-f 忽略大小写
+nM 排列域的前三个字符作为缩写的月份名称
-d 排列目录顺序,只考虑字母、数字和空格。其他字符忽略
-o filename输出结果到指定filename文件中
-b 在限定起始和结束排序域时忽略开头的空格字符
-t char使用char字符作为域分隔符,如果没有指定该参数,则使用空格字符作为默认参数
$ ls -ld f* > list
$ cat list
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers_6
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.1
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.2
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.3
-rw-r--r-- 1 user1 staff 1696 Feb 22 14:51 file1
-rw-r--r-- 1 user1 staff 156 Mar 1 14:48 file2
-rw-r--r-- 1 user1 staff 218 Feb 22 14:51 file3
-rw-r--r-- 1 user1 staff 137 Feb 22 14:51 file4
-rw-r--r-- 1 user1 staff 56 Feb 22 14:51 fruit
-rw-r--r-- 1 user1 staff 57 Feb 22 14:51 fruit2
$ sort -rn +4 list -o num.list
$ cat num.list
-rw-r--r-- 1 user1 staff 1696 Feb 22 14:51 file1
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers_6
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers
-rw-r--r-- 1 user1 staff 218 Feb 22 14:51 file3
-rw-r--r-- 1 user1 staff 156 Mar 1 14:48 file2
-rw-r--r-- 1 user1 staff 137 Feb 22 14:51 file4
-rw-r--r-- 1 user1 staff 57 Feb 22 14:51 fruit2
-rw-r--r-- 1 user1 staff 56 Feb 22 14:51 fruit
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.3
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.2
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.1
$ sort +5M +6n list -o update.list
$ cat update.list
-rw-r--r-- 1 user1 staff 56 Feb 22 14:51 fruit
-rw-r--r-- 1 user1 staff 57 Feb 22 14:51 fruit2
-rw-r--r-- 1 user1 staff 137 Feb 22 14:51 file4
-rw-r--r-- 1 user1 staff 218 Feb 22 14:51 file3
-rw-r--r-- 1 user1 staff 1696 Feb 22 14:51 file1
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.1
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.2
-rw-r--r-- 1 user1 staff 0 Feb 25 12:54 file.3
-rw-r--r-- 1 user1 staff 156 Mar 1 14:48 file2
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers
-rw-r--r-- 1 user1 staff 218 Mar 1 11:36 feathers_6
$
第一个示例把ls命令的输出保存在文件list中,然后使用cat命令来查看文件内容。
第一条sort命令对第五个域产生一个反向、数字排序,排序的结果保存到文件num.list中。
第二条sort命令对文件list的域6和7进行多层排序,选项+5M对第6个域月份项按字母顺序排序,+6n对第7域天按数字顺序进行第二层排序,所有的排序结果保存在update.list文件中。
列出目录下所有文件,按时间排序:
ls -l | sort +7rn +5rn +6rn
当然也可以用:
ls -l --sort=t
或
ls -lt
另外可以用whereis和which定位, 如:
which perl
whereis perl