日期:2014-05-16  浏览次数:20696 次

Linux基本指令之sort、uniq、join、cut、paste、split、tr
sort:
sort命令将许多不同的域按不同的顺序分类
sort命令的一般格式为:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面简要介绍一下 sort的参数:
-c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储sort结果的输出文件名。

其他选项有:
-b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或 tab键分隔域。
-r 对分类次序或比较求逆。
+n n 为域号。使用此域号开始分类。
n n 为域号。在分类比较时忽略此域,一般与 +n一起使用。
post1   传递到 m,n。m为域号, n为开始分类字符数;例如 4,6意即以第 5域分类,从第 7个字符开始。


sort启动方式:
缺省情况下, sort认为一个空格或一系列空格为分隔符。要加入其他方式分隔,使用  -t选项。
sort执行时,先查看是否为域分隔设置了 -t选项,如果设置了,则使用它来将记录分隔成域0、域1等等;如果未设置,用空格代替。缺省时 sort将整个行排序,指定域号的情况例外。
sort的一个重要事实是它参照第一个域作为域 0,域 1是第二个域,等等


命令行实例:
[root@redhat script]#cat video.txt 
Boy in Company C:HK:192:1292
Alien:HK:119:1982
The Hill:KL:63:2972
Aliens:HK:534:4892
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Toy Story:HK:239:3972
[root@redhat script]#
[root@redhat script]#sort -c video.txt 
sort: video.txt:2: disorder: Alien:HK:119:1982
[root@redhat script]#
[root@redhat script]#sort -t: video.txt 
A Few Good Men:KL:445:5851
Alien:HK:119:1982
Aliens:HK:534:4892
Boy in Company C:HK:192:1292
Star Wars:HK:301:4102
The Hill:KL:63:2972
Toy Story:HK:239:3972
[root@redhat script]#
[root@redhat script]#sort -t: -r video.txt 
Toy Story:HK:239:3972
The Hill:KL:63:2972
Star Wars:HK:301:4102
Boy in Company C:HK:192:1292
Aliens:HK:534:4892
Alien:HK:119:1982
A Few Good Men:KL:445:5851
[root@redhat script]#
[root@redhat script]#
[root@redhat script]#sort -t: +0 video.txt 
A Few Good Men:KL:445:5851
Alien:HK:119:1982
Aliens:HK:534:4892
Boy in Company C:HK:192:1292
Star Wars:HK:301:4102
The Hill:KL:63:2972
Toy Story:HK:239:3972
[root@redhat script]#
[root@redhat script]#
[root@redhat script]#sort -t: +1 video.txt 
Alien:HK:119:1982
Boy in Company C:HK:192:1292
Toy Story:HK:239:3972
Star Wars:HK:301:4102
Aliens:HK:534:4892
A Few Good Men:KL:445:5851
The Hill:KL:63:2972
[root@redhat script]#
[root@redhat script]#sort -t: +2 video.txt 
Alien:HK:119:1982
Boy in Company C:HK:192:1292
Toy Story:HK:239:3972
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Aliens:HK:534:4892
The Hill:KL:63:2972
[root@redhat script]#
[root@redhat script]#
[root@redhat script]#sort -t: +2n video.txt 
The Hill:KL:63:2972
Alien:HK:119:1982
Boy in Company C:HK:192:1292
Toy Story:HK:239:3972
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Aliens:HK:534:4892
[root@redhat script]#
[root@redhat script]# 
[root@redhat script]#
[root@redhat script]#cat video.txt 
Boy in Company C:HK:192:1292
Alien:HK:119:1982
The Hill:KL:63:2972
Aliens:HK:534:4892
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Toy Story:HK:239:3972
Alien:HK:119:1982
[root@redhat script]#
[root@redhat script]#sort -u video.txt 
A Few Good Men:KL:445:5851
Alien:HK:119:1982
Aliens:HK:534:4892
Boy in Company C:HK:192:1292
Star Wars:HK:301:4102
The Hill:KL:63:2972
Toy Story:HK:239:3972
[root@redhat script]#
[root@redhat script]#sort -t: +3 video.txt 
Boy in Company C:HK:192:1292
Alien:HK:119:1982
The Hill:KL:63:2972
Toy Story:HK:239:3972
Star Wars:HK:301:4102
Aliens:HK:534:4892
A Few Good Men:KL:445:5851
[root@redhat script]#
[root@redhat script]#sort -t: -k4 video.txt 
Boy in Company C:HK:192:1292
Alien:HK:119:1982
The Hill:KL:63:2972
Toy Story:HK:239:3972
Star Wars:HK:301:4102
Aliens:HK:534:4892
A Few Good Men:KL:445:5851
[root@redhat script]#
[root@redhat script]#sort -t: -k1 video.txt 
A Few Good Men:KL:445:5851
Alien:HK:119:1982
Aliens:HK:534:4892
Boy in Company C:HK:192:1292
Star Wars:HK:301:4102
The Hill:KL:63:2972
Toy Story:HK:239:3972
[root@redhat script]#sort -t: -k2 video.txt 
Alien:HK:119:1982
Boy in Company C:HK:192:1292
Toy Story:HK:239:3972
Star Wars:HK:301:4102
Aliens:HK:534:4892
A Few Good Men:KL:445:5851
The Hill:KL:63:2972
[root@redhat script]#
[root@redhat script]#
[root@redhat script]#sort -t: -k2 -k4 video.txt 
Alien:HK:119:1982
Boy in Company C:HK:192:1292
Toy Story:HK:239:3972
Star Wars:HK:301:4102
Aliens:HK:534:4892
A Few Good Men:KL:445:5851
The Hill:KL:63:2972
[root@redhat script]#
[roo