Linux 中 sort 命令的14個有用的範例(一)
Sort是用於對單個或多個文字檔案內容進行排序的Linux程式。Sort命令以空格作為欄位分隔符,將一行分割為多個關鍵字對檔案進行排序。需要注意的是除非你將輸出重定向到檔案中,否則Sort命令並不對檔案內容進行實際的排序(即檔案內容沒有修改),只是將檔案內容按有序輸出。
本文的目標是通過14個實際的範例讓你更深刻的理解如何在Linux中使用sort命令。
1、 首先我們將會建立一個用於執行‘sort’命令的文字檔案(tecmint.txt)。工作路徑是‘/home/$USER/Desktop/tecmint’。
下面命令中的‘-e’選項將啟用‘/’轉義,將‘/n’解析成換行
$ echo -e "computer/nmouse/nLAPTOP/ndata/nRedHat/nlaptop/ndebian/nlaptop" > tecmint.txt
2、 在開始學習‘sort’命令前,我們先看看檔案的內容及其顯示方式。
$ cat tecmint.txt
3、 現在,使用如下命令對檔案內容進行排序。
$ sort tecmint.txt
注意:上面的命令並不對檔案內容進行實際的排序,僅僅是將其內容按有序方式輸出。
4、 對檔案‘tecmint.txt’檔案內容排序,並將排序後的內容輸出到名為sorted.txt的檔案中,然後使用cat命令檢視驗證sorted.txt檔案的內容。
$ sort tecmint.txt > sorted.txt $ cat sorted.txt
5、 現在使用‘-r’引數對‘tecmint.txt’檔案內容進行逆序排序,並將輸出內容重定向到‘reversesorted.txt’檔案中,並使用cat命令檢視檔案的內容。
$ sort -r tecmint.txt > reversesorted.txt $ cat reversesorted.txt
6、 建立一個新檔案(lsl.txt),檔案內容為在home目錄下執行‘ls -l’命令的輸出。
$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt $ cat lsl.txt
我們將會看到對其他欄位進行排序的例子,而不是對預設的開始字元進行排序。
7、 基於第二列(符號連線的數量)對檔案‘lsl.txt’進行排序。
$ sort -nk2 lsl.txt
注意:上面例子中的‘-n’參數列示對數值內容進行排序。當想基於檔案中的數值列對檔案進行排序時,必須要使用‘-n’引數。
8、 基於第9列(檔案和目錄的名稱,非數值)對檔案‘lsl.txt’進行排序。
$ sort -k9 lsl.txt
9、 sort命令並非僅能對檔案進行排序,我們還可以通過管道將命令的輸出內容重定向到sort命令中。
$ ls -l /home/$USER | sort -nk5
10、 對檔案tecmint.txt進行排序,並刪除重複的行。然後檢查重複的行是否已經刪除了。
$ cat tecmint.txt $ sort -u tecmint.txt
目前我們發現的排序規則:
除非指定了‘-r’引數,否則排序的優先順序按下面規則排序
- 以數字開頭的行優先順序最高
- 以小寫字母開頭的行優先順序次之
- 待排序內容按字典序進行排序
- 預設情況下,‘sort’命令將帶排序內容的每行關鍵字當作一個字串進行字典序排序(數字優先順序最高,參看規則 1)
11、 在當前位置建立第三個檔案‘lsla.txt’,其內容用‘ls -lA’命令的輸出內容填充。
$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt $ cat lsla.txt
瞭解ls命令的讀者都知道‘ls -lA’ 等於 ‘ls -l’ + 隱藏檔案,所以這兩個檔案的大部分內容都是相同的。
12、 對上面兩個檔案內容進行排序輸出。
$ sort lsl.txt lsla.txt
注意檔案和目錄的重複
13、 現在我們看看怎樣對兩個檔案進行排序、合併,並且刪除重複行。
$ sort -u lsl.txt lsla.txt
此時,我們注意到重複的行已經被刪除了,我們可以將輸出內容重定向到檔案中。
14、 我們同樣可以基於多列對檔案內容進行排序。基於第2,5(數值)和9(非數值)列對‘ls -l’命令的輸出進行排序。
$ ls -l /home/$USER | sort -t "," -nk2,5 -k9
先到此為止了,在接下來的文章中我們將會學習到‘sort’命令更多的詳細例子。屆時敬請關注我們。保持分享精神。若喜歡本文,敬請將本文分享給你的朋友。
相關文章
- Linux 的”sort”命令的七個有趣例項Linux
- Linux中10個有用的命令列補齊命令Linux命令列
- 【轉】linux中的sort命令Linux
- Linux 中 10 個有用的命令列補全例子Linux命令列
- 對中級 Linux 使用者有用的 20 個命令Linux
- 對 Linux 新手有用的 20 個命令Linux
- 20個有用的linux命令列技巧Linux命令列
- Linux中的15個‘echo’ 命令例項Linux
- ls 命令的 20 個實用範例
- 對中級Linux 使用者非常有用的20個命令Linux
- 在 Linux 下 9 個有用的 touch 命令示例Linux
- 對 Linux 新手非常有用的 20 個命令Linux
- 對 Linux 新手非常有用的20個命令Linux
- 給新手的 10 個有用 Linux 命令列技巧Linux命令列
- oracle幾個有用的命令Oracle
- linux的cut命令很有用Linux
- tar 命令一個比較有用的引數
- Linux sort命令Linux
- 14 個 Linux grep 命令的例子Linux
- 對Linux專家非常有用的20個命令Linux
- 11 個很少人知道但很有用的 Linux 命令Linux
- 10個有用的Linux命令面試問題及答案Linux面試
- 對 Linux 專家非常有用的 20 個命令Linux
- Linux 有用的命令之 - lsof(轉)Linux
- 每天一個 Linux 命令(14):head 命令Linux
- 有用的命令
- Linux中sort,uniq,cut,wc命令詳解Linux
- Linux 中的 JQ 命令使用例項Linux
- Linux中ip命令的使用例項Linux
- Linux 中 ss 命令的使用例項Linux
- Linux中的basename命令使用例項Linux
- 管理Websphere的10個有用命令Web
- 對新手Linux使用者非常有用的20個命令Linux
- Linux基礎命令---sortLinux
- Linux基礎命令—sortLinux
- linux命令詳解:sortLinux
- Linux sort 命令詳解Linux
- 給Linux系統/網路管理員準備的Nmap命令的29個實用範例Linux