Linux命令之sort用法

2022-08-26 10:21:08 字數 4449 閱讀 1507

參  數:

-b   忽略每行前面開始出的空格字元。

-c   檢查檔案是否已經按照順序排序。

-f   排序時,忽略大小寫字母。

-m   將前面3個字母依照月份的縮寫進行排序。

-n   依照數值的大小排序。

-o《輸出檔案》   將排序後的結果存入指定的檔案。

-r   以相反的順序來排序。

-t《分隔字元》   指定排序時所用的字段分隔字元。

-k  選擇以哪個區間進行排序。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面通過幾個例子來講述sort的使用。

(1)sort將檔案的每一行作為乙個單位,相互比較,比較原則是從首字元向後,依次按ascii碼值進行比較,最後將他們按公升序輸出。

使用者可以儲存排序後的檔案內容,或把排序後的檔案內容輸出至印表機。下例中使用者把排序後的檔案內容儲存到名為result的檔案中。

$ sort seq.txt > result

(2)sort的-u選項

它的作用很簡單,就是在輸出行中去除重複行。

pear由於重複被-u選項無情的刪除了。

(3)sort的-r選項

sort預設的排序方式是公升序,如果想改成降序,就加個-r就搞定了。

[rocrocket@rocrocket programming]$ cat number.txt13

524[rocrocket@rocrocket programming]$ sort number.txt12

345[rocrocket@rocrocket programming]$ sort -r number.txt54

321(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.txt13

524[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt

[rocrocket@rocrocket programming]$ cat number.txt54

321(6) sort的-n選項

你有沒有遇到過10比2小的情況。我反正遇到過。出現這種情況是由於排序程式將這些數字按字元來排序了,排序程式會先比較1和2,顯然1小,所以就將10放在2前面嘍。這也是sort的一貫作風。

我們如果想改變這種現狀,就要使用-n選項,來告訴sort,「要以數值來排序」!

[rocrocket@rocrocket programming]$ cat number.txt110

191125

[rocrocket@rocrocket programming]$ sort number.txt110

111925

[rocrocket@rocrocket programming]$ sort -n number.txt12

5101119

(7) sort的-t選項和-k選項

如果有乙個檔案的內容是這樣:

這個檔案有三列,列與列之間用冒號隔開了,第一列表示水果型別,第二列表示水果數量,第三列表示水果**。那麼我想以水果數量來排序,也就是以第二列來排序,如何利用sort實現?幸好,sort提供了-t選項,後面可以設定間隔符。指定了間隔符之後,就可以用-k來指定列數了。

(8) 其他的sort常用選項

-f會將小寫字母都轉換為大寫字母來進行比較,亦即忽略大小寫

-c會檢查檔案是否已排好序,如果亂序,則輸出第乙個亂序的行的相關資訊,最後返回1

-c會檢查檔案是否已排好序,如果亂序,不輸出內容,僅返回1

-m會以月份來排序,比如jan小於feb等等

-b會忽略每一行前面的所有空白部分,從第乙個可見字元開始比較。

參  數:

-b   忽略每行前面開始出的空格字元。

-c   檢查檔案是否已經按照順序排序。

-f   排序時,忽略大小寫字母。

-m   將前面3個字母依照月份的縮寫進行排序。

-n   依照數值的大小排序。

-o《輸出檔案》   將排序後的結果存入指定的檔案。

-r   以相反的順序來排序。

-t《分隔字元》   指定排序時所用的字段分隔字元。

-k  選擇以哪個區間進行排序。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面通過幾個例子來講述sort的使用。

(1)sort將檔案的每一行作為乙個單位,相互比較,比較原則是從首字元向後,依次按ascii碼值進行比較,最後將他們按公升序輸出。

使用者可以儲存排序後的檔案內容,或把排序後的檔案內容輸出至印表機。下例中使用者把排序後的檔案內容儲存到名為result的檔案中。

$ sort seq.txt > result

(2)sort的-u選項

它的作用很簡單,就是在輸出行中去除重複行。

pear由於重複被-u選項無情的刪除了。

(3)sort的-r選項

sort預設的排序方式是公升序,如果想改成降序,就加個-r就搞定了。

[rocrocket@rocrocket programming]$ cat number.txt13

524[rocrocket@rocrocket programming]$ sort number.txt12

345[rocrocket@rocrocket programming]$ sort -r number.txt54

321(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.txt13

524[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt

[rocrocket@rocrocket programming]$ cat number.txt54

321(6) sort的-n選項

你有沒有遇到過10比2小的情況。我反正遇到過。出現這種情況是由於排序程式將這些數字按字元來排序了,排序程式會先比較1和2,顯然1小,所以就將10放在2前面嘍。這也是sort的一貫作風。

我們如果想改變這種現狀,就要使用-n選項,來告訴sort,「要以數值來排序」!

[rocrocket@rocrocket programming]$ cat number.txt110

191125

[rocrocket@rocrocket programming]$ sort number.txt110

111925

[rocrocket@rocrocket programming]$ sort -n number.txt12

5101119

(7) sort的-t選項和-k選項

如果有乙個檔案的內容是這樣:

這個檔案有三列,列與列之間用冒號隔開了,第一列表示水果型別,第二列表示水果數量,第三列表示水果**。那麼我想以水果數量來排序,也就是以第二列來排序,如何利用sort實現?幸好,sort提供了-t選項,後面可以設定間隔符。指定了間隔符之後,就可以用-k來指定列數了。

(8) 其他的sort常用選項

-f會將小寫字母都轉換為大寫字母來進行比較,亦即忽略大小寫

-c會檢查檔案是否已排好序,如果亂序,則輸出第乙個亂序的行的相關資訊,最後返回1

-c會檢查檔案是否已排好序,如果亂序,不輸出內容,僅返回1

-m會以月份來排序,比如jan小於feb等等

-b會忽略每一行前面的所有空白部分,從第乙個可見字元開始比較。

Linux的sort命令用法

sort預設是按字元排序例如 1 2 11 4 排序結果是 1 11 2 4 sort按照數字大小進行排序 新增 n sort將字元按照從大到小 相反的 的順序排列 r sort將排序結果輸入到當前排序的檔案 sort n test.txt o test.txt sort指定列進行排序 sort k...

Linux命令學習之 sort命令

linux命令學習之 sort命令 sort 命令對 file 引數指定的檔案中的行排序,並將結果寫到標準輸出。如果 file 引數指定多個檔案,那麼 sort 命令將這些檔案連線起來,並當作乙個檔案進行排序。格式 sort fbmnrtuk file or stdin 選項與引數 f 忽略大小寫的...

Linux常用統計命令之sort

sort是在linux裡非常常用的乙個統計命令 1 sort的工作原理 sort將檔案的每一行作為乙個單位,相互比較,比較原則是從首字元向後,依次按ascii碼值進行比較,最後將他們按公升序輸出。其語法及常用引數格式 sort bcfmnrtk 原始檔 o 輸出檔案 參 數 b 忽略每行前面開始出的...