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

相關內容