Linux sort 命令詳解

唐青枫發表於2024-12-02

簡介

sort 命令用於按特定順序(例如升序或降序)排列檔案中的行或輸入資料。它可以按字母順序、數字順序和基於特定欄位進行排序,如果沒有指定檔案,則從標準輸入中讀取。

常用選項

  • -r:反轉排序順序(降序)
  • -n:按數字排序
  • -k:指定欄位或列排序
  • -t:定義欄位的分隔符,預設是空格
  • -u:在排序之後移除重複的行
  • -f:忽略大小寫
  • -o:排序之後指定輸出的檔案
  • --help:顯示幫助資訊

示例用法

透過字母排序(預設排序)

sort file.txt

透過字母降序排序

sort -r file.txt

透過數字排序

sort -n numbers.txt

透過指定欄位排序

sort -k 2 file.txt

# 按每行第二個欄位排序

#例如原始檔內容是:
apple 2
banana 1
cherry 3

# 排序後:
banana 1
apple 2
cherry 3

指定欄位分隔符

sort -t: -k 2 file.txt

# 此處指定分割符為冒號

# 例如原始檔內容是:
user1:1001
user3:1003
user2:1002

# 排序後:
user1:1001
user2:1002
user3:1003

排序後移除重複的行

sort -u file.txt

# 例如原始檔內容是;
apple
banana
apple
cherry

# 排序後:
apple
banana
cherry

將排序後的輸出儲存到檔案中

sort file.txt -o sorted_file.txt

排序不區分大小寫

sort -f file.txt

檢查檔案是否已排序

sort -c file.txt

使用分隔符按特定列進行數字排序

sort -t, -k 2n file.csv

# 按第二列的數字順序對 CSV 檔案 (file.csv) 進行排序,並使用逗號作為分隔符。

IP 地址進行排序

sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 ips.txt

排序多個檔案

sort default1.txt default2.txt

按時間戳對日誌進行排序

sort -t ' ' -k 3,4 logs.txt

# 按第三和第四個欄位對日誌進行排序

相關文章