linux之sort敕令的用法。本站提示廣大學習愛好者:(linux之sort敕令的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是linux之sort敕令的用法正文
sort敕令是幫我們根據分歧的數據類型停止排序,其語法及經常使用參數格局:
sort [-bcfMnrtk][源文件][-o 輸入文件]
彌補解釋:sort可針對文本文件的內容,以行動單元來排序。
參 數:
-b 疏忽每行後面開端出的空格字符。
-c 檢討文件能否曾經依照次序排序。
-f 排序時,疏忽年夜小寫字母。
-M 將後面3個字母按照月份的縮寫停止排序。
-n 按照數值的年夜小排序。
-o<輸入文件> 將排序後的成果存入指定的文件。
-r 以相反的次序來排序。
-t<分隔字符> 指定排序時所用的欄位分隔字符。
-k 選擇以哪一個區間停止排序。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上面經由過程幾個例子來說述Sort的應用。
(1)sort將文件的每行作為一個單元,互相比擬,比擬准繩是從首字符向後,順次按ASCII碼值停止比擬,最初將他們按升序輸入。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
用戶可以保留排序後的文件內容,或把排序後的文件內容輸入至打印機。下例頂用戶把排序後的文件內容保留到名為result的文件中。
$ Sort seq.txt > result
(2)sort的-u選項
它的感化很簡略,就是在輸入行中去除反復行。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
pear
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
pear
[rocrocket@rocrocket programming]$ sort -u seq.txt
apple
banana
orange
pear
pear因為反復被-u選項無情的刪除。
(3)sort的-r選項
sort默許的排序方法是升序,假如想改成降序,就加個-r就弄定了。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort number.txt
1
2
3
4
5
[rocrocket@rocrocket programming]$ sort -r number.txt
5
4
3
2
1
(5)sort的-o選項
因為sort默許是把成果輸入到尺度輸入,所以須要用重定向能力將成果寫入文件,形如sort filename > newfile。
然則,假如你想把排序成果輸入到原文件中,用重定向可就不可了。
[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt
[rocrocket@rocrocket programming]$ cat number.txt
[rocrocket@rocrocket programming]$
看,居然將number清空了。
就在這個時刻,-o選項湧現了,它勝利的處理了這個成績,讓你寧神的將成果寫入原文件。這也許也是-o比重定向的獨一優勢地點。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
[rocrocket@rocrocket programming]$ cat number.txt
5
4
3
2
1
(6) sort的-n選項
你有無碰到過10比2小的情形。我橫豎碰到過。湧現這類情形是因為排序法式將這些數字按字符來排序了,排序法式會先比擬1和2,明顯1小,所以就將10放在2後面喽。這也是sort的一向風格。
我們假如想轉變這類近況,就要應用-n選項,來告知sort,“要以數值來排序”!
[rocrocket@rocrocket programming]$ cat number.txt
1
10
19
11
2
5
[rocrocket@rocrocket programming]$ sort number.txt
1
10
11
19
2
5
[rocrocket@rocrocket programming]$ sort -n number.txt
1
2
5
10
11
19
(7) sort的-t選項和-k選項
假如有一個文件的內容是如許:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
這個文件有三列,列與列之間用冒號離隔了,第一列表現生果類型,第二列表現生果數目,第三列表現生果價錢。那末我想以生果數目來排序,也就是以第二列來排序,若何應用sort完成?幸虧,sort供給了-t選項,前面可以設定距離符。指定了距離符以後,便可以用-k來指定列數了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t ‘:' facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
(8) 其他的sort經常使用選項
-f會將小寫字母都轉換為年夜寫字母來停止比擬,亦即疏忽年夜小寫
-c會檢討文件能否已排好序,假如亂序,則輸入第一個亂序的行的相干信息,最初前往1
-C會檢討文件能否已排好序,假如亂序,不輸入內容,僅前往1
-M會以月份來排序,好比JAN小於FEB等等
-b會疏忽每行後面的一切空白部門,從第一個可見字符開端比擬。