按鍵排序

假設我們有這個檔案:

test>>cat Hogwarts 
  Harry        Malfoy        Rowena        Helga
  Gryffindor   Slytherin     Ravenclaw     Hufflepuff
  Hermione     Goyle         Lockhart      Tonks
  Ron          Snape         Olivander     Newt
  Ron          Goyle         Flitwick      Sprout

要使用列作為鍵對此檔案進行排序,請使用 k 選項:

test>>sort -k 2 Hogwarts

這將使用第 2 列作為鍵對檔案進行排序:

  Ron        Goyle        Flitwick        Sprout
  Hermione   Goyle        Lockhart        Tonks
  Harry      Malfoy       Rowena          Helga
  Gryffindor Slytherin    Ravenclaw       Hufflepuff
  Ron        Snape        Olivander       Newt

現在,如果我們必須使用輔助鍵和主鍵對檔案進行排序:

sort -k 2,2 -k 1,1 Hogwarts 

這將首先將列 2 作為主鍵排序,然後將列 1 作為輔助鍵對檔案進行排序:

  Hermione        Goyle        Lockhart        Tonks
  Ron             Goyle        Flitwick        Sprout
  Harry           Malfoy       Rowena          Helga
  Gryffindor      Slytherin    Ravenclaw       Hufflepuff
  Ron             Snape        Olivander       Newt

如果我們需要對包含多個鍵的檔案進行排序,那麼對於每個 -k 選項,我們需要指定排序結束的位置。所以 -k1,1 表示在第一列開始排序,在第一列結束排序。

-t 選項

在前面的示例中,該檔案具有預設的分隔符 - 選項卡。如果對具有非預設分隔符的檔案進行排序,我們需要 -t 選項來指定分隔符。假設我們有如下檔案:

test>>cat file
5.|Gryffindor
4.|Hogwarts
2.|Harry
3.|Dumbledore
1.|The sorting hat

要按照第二列對此檔案進行排序,請使用:

test>>sort -t "|" -k 2 file

這將按如下方式對檔案進行排序:

3.|Dumbledore
5.|Gryffindor
2.|Harry
4.|Hogwarts
1.|The sorting hat