shell的sort命令


sort命令以行為單位對文本進行排序。

命令語法:

sort [-b/d/f/g/i/M/n/r] [InFile]

參數解釋:

-b: ignore-leading-blanks,忽略前面空格符部分
-d: data-order,僅考慮空格和字母數字字符
-f: ignore-case,忽略大小寫
-g: general-numeric-sort,根據一般數值進行排序
-i: ignore-nonprinting,忽略不可打印的字符,比如換行符、回車符
-M: month-sort,以月份進行排序
-n: numeric-sort,根據字符串數值進行排序
-r: reverse,反向輸出排序結果

其他參數:

-c: check,檢查文本是否已排序,如果不是,則輸出第一個亂序的行的相關信息,返回1
-k N: key,以第N列進行排序
-m S1 S2: merge,合並已排序的S1、S2文本,不再排序
-o File: output,將結果寫入File中
-s: stable,通過禁用最后的比較來穩定排序
-t sep: field-separator,使用sep作為分隔符來區分列
-u: unique,去掉重復的行
-z: 零終止的結束行,0字節,而不是換行符

栗子

# sort.txt

1
mac 2000 3 winxp 4000 2 linux 1000 4 win7 1000 2 linux 1000

1. 以數字進行排序

1) - n

sort -n sort.txt 

結果為:

1 mac 2000
2 linux 1000
2 linux 1000
3 winxp 4000
4 win7 1000

2) - g

sort -g sort.txt

結果為:

1 mac 2000
2 linux 1000
2 linux 1000
3 winxp 4000
4 win7 1000

2. 反向排序

sort -r  sort.txt 

結果為:

4 win7 1000
3 winxp 4000
2 linux 1000
2 linux 1000
1 mac 2000

3. 以指定列進行排序(以下為第三列)

sort -k 3 sort.txt 

結果為:

2 linux 1000
2 linux 1000
4 win7 1000
1 mac 2000
3 winxp 4000

4.排序結果去除重復的行

 sort -u sort.txt 

結果為:

1 mac 2000
2 linux 1000
3 winxp 4000
4 win7 1000

5.合並兩個已排序的文本

sort -m sort.txt uniq.txt

只是單純的合並,不會進行排序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM