按键排序

假设我们有这个文件:

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