sort命令用作排序,其格式为:
sort [-t 分隔符] [kn1,n2] [-nru]
常用选项解释:
-t : 后跟分隔字符。
-n : 使用纯数字排序,若对纯数字字符串排序,可不加该选项,因为0~9的ASCII值就是从小到大的。
-r : 反向排序。
-u : 去除重复。
-kn1,n2 : 由n1区间排序到n2区间,若只写n1,则按n1字段排序。
若sort后不加任何选项,则从首字符向后依次按ASCII码值进行比较,最后按升序输出。
例:
$head -n 3 /etc/passwd > test #将passwd文件的前三行输出到test文件作为测试用文件
$cat test #查看test文件内容
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
$sort test #不加任何选项
bin:x:2:2:bin:/bin:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
root:x:0:0:root:/root:/bin/bash
按每行首字母的ASCII值进行比较,若首字母一样,则依次往后推一个字母
$sort -t ':' -k3 -nr
bin:x:2:2:bin:/bin:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
root:x:0:0:root:/root:/bin/bash
以“:”为分隔符,对第三段用数字进行反向排序。
$sort -t ':' -k3,5 test
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
对第3到5段之间的字符串进行排序。