您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux系統sort命令怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經按照順序排序。
-d 排序時,處理英文字母、數字及空格字符外,忽略其他的字符。
-f 排序時,將小寫字母視為大寫字母。
-i 排序時,除了040至176之間的ASCII字符外,忽略其他的字符。
-m 將幾個排序好的文件進行合并。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-u 意味著是唯一的(unique),輸出的結果是去完重了的。
-o 將排序后的結果存入指定的文件。
-r 以相反的順序來排序。
-t 指定排序時所用的欄位分隔字符。
+- 以指定的欄位來排序,范圍由起始欄位到結束欄位的前一欄位。
–help 顯示幫助。
–version 顯示版本信息。
1、 首先我們將會創建一個用于執行‘sort’命令的文本文件(tecmint.txt)。工作路徑是‘/home/$USER/Desktop/tecmint’。
下面命令中的‘-e’選項將啟用‘\’轉義,將‘\n’解析成換行
$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt
Split String by Lines in Linux
2、 在開始學習‘sort’命令前,我們先看看文件的內容及其顯示方式。
$ cat tecmint.txt
Check Content of File
3、 現在,使用如下命令對文件內容進行排序。
$ sort tecmint.txt
Sort Content of File linux
注意:上面的命令并不對文件內容進行實際的排序,僅僅是將其內容按有序方式輸出。
4、 對文件‘tecmint.txt’文件內容排序,并將排序后的內容輸出到名為sorted.txt的文件中,然后使用
命令查看驗證sorted.txt文件的內容。$ sort tecmint.txt > sorted.txt$ cat sorted.txt
Sort File Content in Linux
5、 現在使用‘-r’參數對‘tecmint.txt’文件內容進行逆序排序,并將輸出內容重定向到‘reversesorted.txt’文件中,并使用cat命令查看文件的內容。
$ sort -r tecmint.txt > reversesorted.txt$ cat reversesorted.txt
Sort Content By Reverse
6、 創建一個新文件(lsl.txt),文件內容為在home目錄下執行‘ls -l’命令的輸出。
$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt$ cat lsl.txt
Populate Output of Home Directory
我們將會看到對其他字段進行排序的例子,而不是對默認的開始字符進行排序。
7、 基于第二列(符號連接的數量)對文件‘lsl.txt’進行排序。
$ sort -nk2 lsl.txt
注意:上面例子中的‘-n’參數表示對數值內容進行排序。當想基于文件中的數值列對文件進行排序時,必須要使用‘-n’參數。
Sort Content by Column
8、 基于第9列(文件和目錄的名稱,非數值)對文件‘lsl.txt’進行排序。
$ sort -k9 lsl.txt
Sort Content Based on Column
9、 sort命令并非僅能對文件進行排序,我們還可以通過管道將命令的輸出內容重定向到sort命令中。
$ ls -l /home/$USER | sort -nk5
Sort Content Using Pipe Option
10、 對文件tecmint.txt進行排序,并刪除重復的行。然后檢查重復的行是否已經刪除了。
$ cat tecmint.txt$ sort -u tecmint.txt
Sort and Remove Duplicates
目前我們發現的排序規則:
除非指定了‘-r’參數,否則排序的優先級按下面規則排序
以數字開頭的行優先級最高
以小寫字母開頭的行優先級次之
待排序內容按字典序進行排序
默認情況下,‘sort’命令將帶排序內容的每行關鍵字當作一個字符串進行字典序排序(數字優先級最高,參看規則 1)
11、 在當前位置創建第三個文件‘lsla.txt’,其內容用‘ls -lA’命令的輸出內容填充。
$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt$ cat lsla.txt
Populate Output With Hidden Files
了解ls命令的讀者都知道‘ls -lA’ 等于 ‘ls -l’ + 隱藏文件,所以這兩個文件的大部分內容都是相同的。
12、 對上面兩個文件內容進行排序輸出。
$ sort lsl.txt lsla.txt
Sort Contents of Two Files
注意文件和目錄的重復
13、 現在我們看看怎樣對兩個文件進行排序、合并,并且刪除重復行。
$ sort -u lsl.txt lsla.txt
Sort, Merge and Remove Duplicates from File
此時,我們注意到重復的行已經被刪除了,我們可以將輸出內容重定向到文件中。
14、 我們同樣可以基于多列對文件內容進行排序。基于第2,5(數值)和9(非數值)列對‘ls -l’命令的輸出進行排序。
$ ls -l /home/$USER | sort -t "," -nk2,5 -k9
關于“Linux系統sort命令怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。