sort命令将许多不同的域按不同的列顺序排序,sort命令如下:  
sort -cmu -o output_file [other options] +pos1 +pos2 input_files  
-c:测试文件是否已经排序  
-m:合并两个排序文件  
-u:删除所有重复行  
-o:存储sort结果的输出文件名  
其他选项:  
-b:使用域进行排序时,忽略第一个空格  
-n:指定排序是域上的数字排序  
-t:域分隔符,用非空格或tab键分隔域  
-r:反序或者逆序  
+n:n为域号,使用此域号开始排序  
n:n为域号,在排序比较时忽略次域,一般与+n一起使用  
pos1:传递到m,n;m为域号,n为开始排序字符数;  
    例如4,6为第5个域,从第7个字符开始  
  
域分隔符:默认情况下,sort认为一个空格或一系列空格为分隔符;  
排序键,第一个域就是排序键1,第二个域就是排序键2,依次类推。  
排序的时候,先按排序键1排序,接着按照排序键2排序,依次类推。  
排序的时候,每个域中按照字符或者数字或者符号的ASCII码进行比较,空格的ASCII为32。  
按照数值域进行分类,在域号后面加n。  
文件video.txt  
pg video.txt  
Boys in Company C:HK:192:2192  
Alien:HK:119:1982  
The Hill:KL:63:2972  
Aliens:HK:532:4892  
Star Wars:HK:301:4102  
A Few Good Men:KL:445:5851  
Toy Story:HK:239:3972  
A google:HK  
其中“:”为域分隔符号,下面使用"-t:"标识相连的域之间以":"分隔。  
正序排列:  
pg video.txt  
Boys in Company C:HK:192:2192  
Alien:HK:119:1982  
The Hill:KL:63:2972  
Aliens:HK:532:4892  
Star Wars:HK:301:4102  
A Few Good Men:KL:445:5851  
Toy Story:HK:239:3972  
A google:HK  
  
逆序排列:  
sort -t: -r video.txt  
Toy Story:HK:239:3972  
The Hill:KL:63:2972  
Star Wars:HK:301:4102  
Boys in Company C:HK:192:2192  
Aliens:HK:532:4892  
Alien:HK:119:1982  
A google:HK  
A Few Good Men:KL:445:5851  
  
按指定域排列  
第一个域:  
sort -t: +1 video.txt  
A google:HK  
Alien:HK:119:1982  
Boys in Company C:HK:192:2192  
Toy Story:HK:239:3972  
Star Wars:HK:301:4102  
Aliens:HK:532:4892      ①  
A Few Good Men:KL:445:5851  ②  
The Hill:KL:63:2972  
第二个域:  
sort -t: +2 video.txt  
A google:HK  
Alien:HK:119:1982  
Boys in Company C:HK:192:2192  
Toy Story:HK:239:3972  
Star Wars:HK:301:4102  
A Few Good Men:KL:445:5851  ②  
Aliens:HK:532:4892      ①  
The Hill:KL:63:2972  
第三个域:  
sort -t: +3n video.txt  
A google:HK  
Alien:HK:119:1982  
Boys in Company C:HK:192:2192  
The Hill:KL:63:2972  
Toy Story:HK:239:3972  
Star Wars:HK:301:4102  
Aliens:HK:532:4892  
A Few Good Men:KL:445:5851  
  
去除重复的行,我们先给文件增加重复的行:  
pg video.txt  
Boys in Company C:HK:192:2192  
...  
A google:HK  
A google:HK  
使用-u选项去除重复的行:  
sort -u video.txt  
A Few Good Men:KL:445:5851  
A google:HK  
Alien:HK:119:1982  
Aliens:HK:532:4892  
Boys in Company C:HK:192:2192  
Star Wars:HK:301:4102  
The Hill:KL:63:2972  
Toy Story:HK:239:3972  
  
使用k做键值排序,按顺序给域编号,第一个域为k1,第二个域为k2,依次类推。  
先按照第4个域排序,在按照第1个域进行排序  
sort -t: -r -k4 -k1 video.txt  
A Few Good Men:KL:445:5851  
Aliens:HK:532:4892  
Star Wars:HK:301:4102  
Toy Story:HK:239:3972  
The Hill:KL:63:2972  
Boys in Company C:HK:192:2192  
Alien:HK:119:1982  ①  
A google:HK:301:1982    ②  
A google:HK 
      
AIX下sort命令简介及使用
内容版权声明:除非注明,否则皆为本站原创文章。

