Linux sort 命令


簡介

Linux 中的sort命令是一個功能強大且用途廣泛的工具,用於以多種方式對文字檔案中的行進行排序。它可以用於按字母順序、數字順序或反向順序對檔案進行排序。它還可以根據檔案中的特定欄位進行排序,使其成為資料分析和操作的寶貴工具。在本文中,我們將探討 sort 命令的不同選項和用法。

sort 命令的基本用法

sort命令的基本語法非常簡單,如下所示:

$ sort [options] [file...]

其中,options 是您想要使用的附加選項,file 是您想要排序的檔名。如果沒有指定檔案,則 sort 將從標準輸入讀取。例如,要按字母順序對名為“file.txt”的檔案內容進行排序,請使用以下命令:

$ sort file.txt
apple
banana
cherry
date
elderberry
fig

使用 sort 命令進行數字排序

sort命令還可以按數字順序對數字進行排序。為此,請使用-n選項。例如,要按數字順序對名為“numbers.txt”的檔案內容進行排序,請使用以下命令:

$ sort -n numbers.txt
1
2
3
4
5
6

使用 sort 命令按欄位排序

sort命令還可以根據檔案中的特定欄位進行排序。這是透過使用-k選項以及欄位號來完成的。例如,要根據名為“file2.txt”的檔案的第二欄位對內容進行排序,請使用以下命令:

$ sort -k 2 file2.txt
apple   1
banana  2
cherry  3
date	4
elderberry 5
fig 6

排序檔案和目錄

sort命令還可以用於對目錄的內容進行排序。為此,可以使用-f選項忽略大小寫,使用-r選項反轉順序,並使用-t選項指定分隔符。例如,要對名為“dir”的目錄的內容進行排序並以反向順序顯示結果,請使用以下命令:

$ ls -l dir | sort -f -r -t ' '
drwxrwxr-x  2 user  group  4096 Jan 01 12:00 dir2
-rw-rw-r--  1 user  group  1234 Jan 01 12:00 file1.txt
-rw-rw-r--  1 user  group  5678 Jan 01 12:00 file2.txt
-rw-rw-r--  1 user  group  9012 Jan 01 12:00 file3.txt
-rw-rw-r--  1 user  group  3456 Jan 01 12:00 file4.txt

使用多個鍵進行排序

sort命令還可以根據多個鍵進行排序。這是透過多次使用-k選項來完成的。例如,要先根據名為“file3.txt”的檔案的第二欄位,然後根據第三欄位對內容進行排序,請使用以下命令:

$ sort -k 2,3 file3.txt
apple   1   A
banana  2   B
cherry  3   C
date	4   D
elderberry 5 E
fig 6 F

使用 sort 命令刪除重複項

sort命令還可以刪除檔案中的重複行。為此,請使用-u選項。例如,要從名為“file4.txt”的檔案中刪除重複行,請使用以下命令:

$ sort -u file4.txt
apple
banana
cherry
date
elderberry
fig

高階用法和附加選項

Linux 中的 sort 命令除了基本排序功能外,還提供各種高階選項和使用場景。這些附加選項可用於微調排序過程並使其適應特定需求。

指定排序規則

sort 命令允許指定排序規則,即字元比較和排序的順序。這可以使用 LC_COLLATE 環境變數來完成。例如,要以反向順序對名為“file5.txt”的檔案進行排序,可以使用以下命令:

$ LC_COLLATE=C sort -r file5.txt
elderberry
date
cherry
banana
apple

忽略前導字元

另一個高階選項是能夠在排序時忽略前導字元。這可以使用 -b 選項來完成。例如,要對名為“file6.txt”的檔案進行排序並忽略前導空格,可以使用以下命令:

$ sort -b file6.txt
apple
banana
cherry
date
elderberry

結論

Linux 中的sort命令是一個功能強大且用途廣泛的工具,可以用於以多種方式排序檔案。您可以按字母順序、數字順序以及按檔案中的特定欄位進行排序。它還可以用於排序目錄和刪除重複行。憑藉各種可用的選項,sort命令可以成為分析和操作資料的寶貴工具。

更新於:2023年2月13日

597 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.