Sort
排序 -k 大於鍵數
我正在嘗試使用 sort 命令了解我們項目中使用的現有腳本
sort -t= -nr -k3 nos
帶有空格和數字的文件在哪裡
nos
,例如:997 998 999 1000輸出是
999 998 997 1000
我不明白為什麼 1000 最後出現。我懷疑這是因為
-k3
每個條目只有鍵時的參數,但我在文件中找不到任何內容來說明當指定的鍵位置不存在時它的行為方式。直到文件中包含 4 位數字,這給出了按數字降序對數字進行排序的預期結果。
當您指定一個不存在的排序欄位時,對於每個存在的比較,排序鍵將為空
sort
。這意味著鍵將始終比較相等。這觸發了標準規範的sort
一部分,即整行應該用作排序鍵,並且沒有任何選項-d
、-f
、-i
、-n
或-k
保持有效。這反過來意味著該命令將與
sort -r nos
它對數據進行反向字典排序(
-t=
這裡沒有效果)。由於 order before以相反的字典順序在997
前面。1000``9``1
來自 POSIX 標準的相關位:
-k keydef
$$ … $$ 除非
-u
指定了選項,否則比較相等的行應被排序,就好像沒有選項-d
,-f
,-i
,-n
或-k
存在(但-r
仍然有效,如果指定)並且行中的所有字節對比較。仍然比較相等的行的寫入順序未指定