溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)sort命令怎么用

發(fā)布時間:2022-02-02 11:25:21 來源:億速云 閱讀:349 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)Linux系統(tǒng)sort命令怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在Linux系統(tǒng)中sort命令只要的作用就是對文本文件內(nèi)容進行排序,以空格作為字段分隔符,將一行分割為多個關(guān)鍵字。

Linux系統(tǒng)sort命令怎么用

語法

 sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]

參數(shù)說明:

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

  • -c 檢查文件是否已經(jīng)按照順序排序。

  • -d 排序時,處理英文字母、數(shù)字及空格字符外,忽略其他的字符。

  • -f 排序時,將小寫字母視為大寫字母。

  • -i 排序時,除了040至176之間的ASCII字符外,忽略其他的字符。

  • -m 將幾個排序好的文件進行合并。

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

  • -n 依照數(shù)值的大小排序。

  • -u 意味著是唯一的(unique),輸出的結(jié)果是去完重了的。

  • -o 將排序后的結(jié)果存入指定的文件。

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

  • -t 指定排序時所用的欄位分隔字符。

  • +- 以指定的欄位來排序,范圍由起始欄位到結(jié)束欄位的前一欄位。

  • –help 顯示幫助。

  • –version 顯示版本信息。

案例演示

1、 首先我們將會創(chuàng)建一個用于執(zhí)行‘sort’命令的文本文件(tecmint.txt)。工作路徑是‘/home/$USER/Desktop/tecmint’。

下面命令中的‘-e’選項將啟用‘\’轉(zhuǎn)義,將‘\n’解析成換行

 $ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

Linux系統(tǒng)sort命令怎么用

Split String by Lines in Linux

2、 在開始學(xué)習(xí)‘sort’命令前,我們先看看文件的內(nèi)容及其顯示方式。

 $ cat tecmint.txt

Linux系統(tǒng)sort命令怎么用

Check Content of File

3、 現(xiàn)在,使用如下命令對文件內(nèi)容進行排序。

 $ sort tecmint.txt

Linux系統(tǒng)sort命令怎么用

Sort Content of File linux

注意:上面的命令并不對文件內(nèi)容進行實際的排序,僅僅是將其內(nèi)容按有序方式輸出。

4、 對文件‘tecmint.txt’文件內(nèi)容排序,并將排序后的內(nèi)容輸出到名為sorted.txt的文件中,然后使用cat命令查看驗證sorted.txt文件的內(nèi)容。

 $ sort tecmint.txt > sorted.txt$ cat sorted.txt

Linux系統(tǒng)sort命令怎么用

Sort File Content in Linux

5、 現(xiàn)在使用‘-r’參數(shù)對‘tecmint.txt’文件內(nèi)容進行逆序排序,并將輸出內(nèi)容重定向到‘reversesorted.txt’文件中,并使用cat命令查看文件的內(nèi)容。

 $ sort -r tecmint.txt > reversesorted.txt$ cat reversesorted.txt

Linux系統(tǒng)sort命令怎么用

Sort Content By Reverse

6、 創(chuàng)建一個新文件(lsl.txt),文件內(nèi)容為在home目錄下執(zhí)行‘ls -l’命令的輸出。

 $ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt$ cat lsl.txt

Linux系統(tǒng)sort命令怎么用

Populate Output of Home Directory

我們將會看到對其他字段進行排序的例子,而不是對默認的開始字符進行排序。

7、 基于第二列(符號連接的數(shù)量)對文件‘lsl.txt’進行排序。

 $ sort -nk2 lsl.txt

注意:上面例子中的‘-n’參數(shù)表示對數(shù)值內(nèi)容進行排序。當想基于文件中的數(shù)值列對文件進行排序時,必須要使用‘-n’參數(shù)。

Linux系統(tǒng)sort命令怎么用

Sort Content by Column

8、 基于第9列(文件和目錄的名稱,非數(shù)值)對文件‘lsl.txt’進行排序。

 $ sort -k9 lsl.txt

Linux系統(tǒng)sort命令怎么用

Sort Content Based on Column

9、 sort命令并非僅能對文件進行排序,我們還可以通過管道將命令的輸出內(nèi)容重定向到sort命令中。

 $ ls -l /home/$USER | sort -nk5

Linux系統(tǒng)sort命令怎么用

Sort Content Using Pipe Option

10、 對文件tecmint.txt進行排序,并刪除重復(fù)的行。然后檢查重復(fù)的行是否已經(jīng)刪除了。

 $ cat tecmint.txt$ sort -u tecmint.txt

Linux系統(tǒng)sort命令怎么用

Sort and Remove Duplicates

目前我們發(fā)現(xiàn)的排序規(guī)則:

除非指定了‘-r’參數(shù),否則排序的優(yōu)先級按下面規(guī)則排序

  • 以數(shù)字開頭的行優(yōu)先級最高

  • 以小寫字母開頭的行優(yōu)先級次之

  • 待排序內(nèi)容按字典序進行排序

  • 默認情況下,‘sort’命令將帶排序內(nèi)容的每行關(guān)鍵字當作一個字符串進行字典序排序(數(shù)字優(yōu)先級最高,參看規(guī)則 1)

11、 在當前位置創(chuàng)建第三個文件‘lsla.txt’,其內(nèi)容用‘ls -lA’命令的輸出內(nèi)容填充。

 $ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt$ cat lsla.txt

Linux系統(tǒng)sort命令怎么用

Populate Output With Hidden Files

了解ls命令的讀者都知道‘ls -lA’ 等于 ‘ls -l’ + 隱藏文件,所以這兩個文件的大部分內(nèi)容都是相同的。

12、 對上面兩個文件內(nèi)容進行排序輸出。

 $ sort lsl.txt lsla.txt

Linux系統(tǒng)sort命令怎么用

Sort Contents of Two Files

注意文件和目錄的重復(fù)

13、 現(xiàn)在我們看看怎樣對兩個文件進行排序、合并,并且刪除重復(fù)行。

 $ sort -u lsl.txt lsla.txt

Linux系統(tǒng)sort命令怎么用

Sort, Merge and Remove Duplicates from File

此時,我們注意到重復(fù)的行已經(jīng)被刪除了,我們可以將輸出內(nèi)容重定向到文件中。

14、 我們同樣可以基于多列對文件內(nèi)容進行排序?;诘?,5(數(shù)值)和9(非數(shù)值)列對‘ls -l’命令的輸出進行排序。

 $ ls -l /home/$USER | sort -t "," -nk2,5 -k9

Linux系統(tǒng)sort命令怎么用

關(guān)于“Linux系統(tǒng)sort命令怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI