Gnu sort -k2 和 -k2,2 之间的区别

Gnu sort -k2 和 -k2,2 之间的区别
less file.txt

01 Joe x
02 Marie y
03 Albert p
04 Dave k

我想按第 2 列排序。但是以下两个命令给出相同的输出。很高兴知道使用 -k2 和 -k2,2 之间有什么区别。

less file.txt | sort -k2less file.txt | sort -k2,2

输出:

03 Albert p
04 Dave k
01 Joe x
02 Marie y

答案1

逗号后面的规范定义了 a stop position(默认为end of the line

man 1 sort

-k--key=KEYDEF通过键排序; KEYDEF 给出位置和类型

KEYDEFF[.C][OPTS][,F[.C][OPTS]]为开始和结束位置,其中 F 为字段编号,C 为字段中的字符位置;两者都是原点 1,停止位置默认为线的末尾。


例如,考虑一个输入file.txt

03 Albert p
04 Albert a
  • 如果使用排序-k2Albert a将放置在Albert p
  • 通过使用-k2,2,排序时第三个键将被忽略

或一个不同的例子:

03 Albert p
04 Aave k

可以使用以下命令按第二个键的第一个字符进行排序-k2,2.2

$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
  • 如果-k2使用的话,Aa会先排序Al

相关内容