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