sort 命令是用於按特定順序對內容進行排序的核心 GNU 實用程序之一。您可以按不同的方式對內容進行排序,包括字母、數字、每月和反向。以下是有關命令排序的一些要點:

  • 數字在字母之前
  • 對於每個字符,首先對小寫字母進行排序。
  • 默認情況下,空格用作字段分隔符。也可以使用其他字段分隔符。

本文向您介紹了 Linux 上 sort 命令的基本用法和一些常用選項。測試所有命令 Ubuntu 20.04 LTS..但是,您可以將相同的命令應用於其他 Linux 發行版。

sort 命令的語法如下:

$ sort [OPTION]... [FILE]...

sort 命令的基本用法

使用不帶命令行選項的 sort 命令按字母順序對指定文件的內容進行排序。

下面是我們的 樣本1.txt 用作示例的文件。

對內容進行排序 樣本1.txt 對於文件,命令如下所示:

$ sort sample1.txt

上述命令的輸出是:內容按字母順序顯示。

如果文件同時包含字母和數字,則 sort 命令將數字排在字母之前。下面是一個包含數字和字母的示例文件。

上述文件的排序輸出為:在這裡你可以看到數字在字母之前。

排序命令選項

sort 命令提供了許多擴展其用途的選項。讓我們來看看其中的一些選項以及如何使用它們。

倒序排列

要重新排序文件的內容, -r 選項。例如,下面顯示了按字母順序倒序排序的示例文件的內容。

要重新排序此文件的內容,請使用: -r 選項包括:

$ sort -r sample1.txt

反向排序

按編號排序

對數據進行數字排序 -n 排序命令選項。如果您的文件包含數字並且您希望將它們從最小數字到最大數字或從最大數字到最小數字排序,則此選項很有用。請注意,在默認排序中,113 被認為小於 2。

以下是示例文件的默認排序示例。請注意,使用默認排序時,排序基於第一個數字。如果第一個數字相同,則按照第二個數字排序。 113 小於 13 和 2,如下例所示。

要按數字對上述內容進行排序(從最小值到最大值),請使用: -n 選項包括:

$ sort -n sample2.txt

排序數字

按月排序

默認排序命令按字母順序對文件的內容進行排序。如果文件包含月份名稱列表,您可以使用: -M 命令。例如,以下是包含月份名稱的示例文件。

要按月份對上述文件的內容進行排序,請使用: -M 選項包括:

$ sort -M sample3.txt

按月排序

按列號排序

默認情況下,sort 命令根據第一列中的第一個字符開始對內容進行排序。

例如,以下是一個包含兩列的示例文件。水果的名稱和價格。如果使用默認排序,則排序基於第一列(包括水果名稱)。

要按照第二列(價格)對上述文件的內容進行排序,需要使用-k命令如下:

$ sort -k2 -n sample1.txt

這裡,-k2 告訴 sort 命令對第二列進行排序,-n 用於數字排序。

上面的命令根據價格(從低到高)對內容進行排序。

明智地排序 colmun

使用不同的字段分隔符

默認情況下,sort 命令使用空格作為字段分隔符。使用非空白字段分隔符 -t 選項。下面是一個基於第二列排序的文件示例 ( 逗號)。

根據第二列對上述文件進行排序的命令是:

$ sort -k2 -n -t “,” sample1.txt

其中-k2 告訴排序命令對第二列進行排序,-n 告訴數字排序,-t 指定字段分隔符。

使用不同的字段分隔符進行排序

排序和刪除重複項

這個 -u 排序命令選項還會刪除重複項並對內容進行排序。以下是具有重複值的示例文件。

要按字母順序對該文件進行排序並同時刪除重複值,命令將是:

$ sort -u sample1.txt

這是已刪除重複項的已排序文件的輸出。

排序和刪除重複項

檢查排序輸入

利用 -C 您可以使用 sort 命令選項來查看文件之前是否已排序。如果文件先前已排序,您將看不到輸出。但是,如果文件未排序,您將看到亂序的行。

示例文件如下:

檢查此文件是否已排序 -C 選項包括:

$ sort -c sample.txt

您將看不到輸出,因為示例文件已經排序。

檢查排序

按保存文件排序的輸出

sort 命令僅在終端上顯示排序後的輸出,它不會保存它。使用重定向運算符將排序後的輸出保存到單獨的文件中。例如,保存排序後的輸出 文件.txt 在一個名為的新文件中 排序文件.txt使用以下命令。

$ sort file.txt > sortedfile.txt

使用管道選項對命令進行排序

您可以通過將其他命令的輸出傳遞給 sort 命令來對其他命令進行排序。例如,假設您想按大小對主目錄中的文件/目錄列表進行數字排序。為此,請使用 ls 命令,通過管道輸出,然後重新排序命令,如下所示:

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

上述命令的輸出是:在這裡您可以看到文件按大小排序。

使用管道選項對命令進行排序

本文介紹了 Linux 上 sort 命令的基本語法和用法。它還描述了擴展該功能的一些常用選項。要獲得幫助並了解有關排序選項的更多信息,請轉到排序手冊頁或在終端中鍵入 sort–help。