Linux中國

Linux 的 『sort』命令的14個有用的範例(一)

1、 首先我們將會創建一個用於執行『sort命令的文本文件(tecmint.txt)。工作路徑是『/home/$USER/Desktop/tecmint』。

下面命令中的『-e』選項將啟用『』轉義,將『n』解析成換行

$ echo -e "computernmousenLAPTOPndatanRedHatnlaptopndebiannlaptop" > 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的文件中,然後使用cat命令查看驗證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

Sort Content By Field Column

先到此為止了,在接下來的文章中我們將會學習到『sort』命令更多的詳細例子。屆時敬請關注我們。保持分享精神。若喜歡本文,敬請將本文分享給你的朋友。

via: http://www.tecmint.com/sort-command-linux/

作者:Avishek Kumar 譯者:cvsher 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國