按键排序
假设我们有这个文件:
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