less file.txt
01 Joe x
02 Marie y
03 Albert p
04 Dave k我想按第2列进行排序,但是下面这两个命令给出了相同的输出。很高兴知道使用-k2和-k2,2有什么区别。
less file.txt | sort -k2和less file.txt | sort -k2,2
输出:
03 Albert p
04 Dave k
01 Joe x
02 Marie y发布于 2020-03-15 04:52:00
逗号后面的规范定义了一个stop position (默认为end of the line)。
man 1 sort:
-k,通过键进行--key=KEYDEF排序;KEYDEF给出位置,类型KEYDEF为开始和停止位置的F[.C][OPTS][,F[.C][OPTS]],其中F是字段号,C是字段中的字符位置;两者都是原点1,停止位置默认为行的末尾。
例如,考虑输入file.txt:
03 Albert p
04 Albert a-k2进行排序,Albert 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之前进行排序。https://unix.stackexchange.com/questions/572968
复制相似问题