當您處理大量數據時,處理它可能會變得乏味。如果您的數據排序正確,它將為您節省大量工作。這正是 sort 命令所做的。

Linux 排序命令,顧名思義,用於將文本文件的內容按指定的順序排序。僅適用於文本文件。 當 sort 命令接收到一個文件時,默認情況下它期望內容為 ASCII 格式。

排序命令是做什麼用的?

sort 命令通常用於按字母或數字的升序或降序對輸入數據進行排序。這個命令非常好用,與我用過的其他命令相比,沒有太多“肉”。但它是一個非常有用的實用程序。讓我們看一下語法以了解 sort 命令的基礎知識。

關於 Linux 中的排序命令

sort 命令是最簡單的命令之一,但它也是您可以使用的最有用的命令之一。此命令的語法是:

sort [options] FileName.txt

“選項”用於指定文件的排序規則(在這種情況下為 FileName.txt)。如果未指定任何選項,Linux 排序命令將使用默認規則對文件進行排序。 排序命令的默認規則是:

  • 按字母升序對文本進行排序
  • 字母在排序列表中的數字下方
  • 小寫字母位於大寫字母的上方

Linux 上 sort 命令的命令選項

Linux 排序命令有許多選項可用於自定義文本文件的排序方式。這些是下面列出的一些選項以及它們對排序命令的影響。

  • -n: 對數據進行排序
  • -R:隨機顯示數字
  • -r: 按降序排列數據
  • -k: 當數據被拆分成多列時使用
  • -u 排序並僅顯示唯一值
  • -這個:將輸出保存到單獨的文件中
  • -C: 檢查指定文件是否已排序

嘗試使用這些選項,因為它們可以相互組合以獲得特定結果。

在 Linux 上使用排序命令

讓我們看看如何使用 sort 命令以及如何使用各種可用的選項。

按字母順序對文件進行排序

sort 命令最基本的用途是按字母順序對文件的內容進行排序。您不需要使用文本文件執行此操作的選項,因為它包含在排序命令的默認規則中。這個演示創建了一個名為 input.txt 的文件並添加了一些隨機單詞。

word
choice
voice
Linux

要按字母順序對該文件進行排序,請使用以下命令:

sort input.txt
排序命令默認

在 Linux 中使用排序命令對數字進行排序

默認情況下,Linux 排序命令不會比較數字來查看一個數字是否大於另一個數字。它只是檢查一個數字的第一個數字是大於還是小於下一個數字。

51510
10000
20194
10201
50010
排序號

在 Linux 中使用 Sort 命令進行降序排序

再次考慮與上述內容完全相同的 input.txt 文件。 Linux 中的反向排序命令按降序對文件的內容進行排序。

sort -r input.txt
降序排序降序排序

正如您在上面的示例中看到的,輸出按降序排序。

隨機排序文件 (-R)

如果您想從 shell 腳本中的文件中獲取隨機信息,則使用此特定選項的示例。 讓我們隨機化 input.txt 文件。

sort -R input.txt
沒有特別的順序沒有特別的順序

如您所見,所有命令結果都以不同的排序順序顯示。

按列對文件進行排序

讓我們創建一個包含兩列的文件。一列只是將所有行共有的兩個單詞分開。在下面的示例中,我們用空格分隔兩個字符串,以在數據集中保持相同的模式。

100 Drinks
40 Snacks
250 Meal
80 Dessert

讓我們按第一列和第二列對這些數據進行排序。

sort -k <column number> <file or text data>
按列排序按列排序

注意,第一個輸出按第二列的“第一個字母”排序,第二個輸出按第一列的“第一個數字”排序。

sort 命令並不真正理解數字 100 大於數字 40 的事實。只檢查第一個數字。結合 -n 上面現有命令的選項是什麼?

對兩列進行數字排序對兩列進行數字排序

這正是我們想要的!太棒了。

僅排序和輸出唯一值

如果您有一個包含許多重複值的文件,並且需要獲取所有唯一值的排序列表,則應使用此命令。讓我們創建一個包含一些重複值的文件:

one
one
two
three
four
four

讓我們運行排序命令 -u 選項。

對唯一值進行排序對唯一值進行排序

對文件進行排序並直接輸出到文件

您可能已經註意到 sort 命令不會更改文件的內容,它只是將更新後的輸出打印到您的終端。那麼我們如何將輸出保存到文件中呢?您可以使用輸出重定向運算符 > 或使用 -這個 這是選項。

對於這個演示,讓我們回到 input.txt 文件。要對該文件進行排序並將其發送到另一個文件 output.txt,請使用以下命令:

sort -o <output file> <input file or text data>
對輸出文件進行排序對輸出文件進行排序

檢查一組數據是否已經排序

如果您有大量文件或想檢查word文件是否排序,您可以使用 -C 選項。

sort -c <filename>
排序檢查排序排序檢查排序

如您所見,排序順序是“Disorder:”,然後是亂序單詞。如果文件排序正確,則不會有輸出。

結論是

Linux教程中的排序命令到此結束。我們在這裡介紹了一些對數據進行排序的常用方法,但是您可以使用 man 命令查找 Linux 排序命令以獲取詳細的手冊頁。