歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> AIX下sort命令簡介及使用

AIX下sort命令簡介及使用

日期:2017/2/28 14:55:21   编辑:Linux教程
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
Copyright © Linux教程網 All Rights Reserved