Sort

排序手冊頁的 KEYDEF

  • October 10, 2019

我已閱讀嘗試對兩個欄位進行排序,然後是第二個欄位。我仍然很困惑。

man sort頁面中:

KEYDEF  is  F[.C][OPTS][,F[.C][OPTS]] for start and stop position

為什麼有兩個OPTS

這是否意味著你可以OPTS在任何地方寫作?還是兩者OPTS影響不同的領域?

但是,鍵(例如-k3,5)不就是一個整體嗎?

如果兩者OPTS相反會發生什麼?如:

sort -t " " -k3n,5nr filename

另一個問題是-k3n,5nr包含兩個空格,shell 如何將其轉換為數字?

當我們想比較多個欄位時,我們應該使用multi -k(例如-k3 -k4 -k5)嗎?-k3n,5n錯了嗎?

sort規範更詳細地描述了這一點:

修飾符的'b'行為類似於**-b**選項,但僅適用於它所附加的field_start或*field_end 。*其他修飾符的行為類似於相應的選項,但僅適用於它們所附加的鍵欄位;如果使用field_startfield_end或兩者都指定,它們將具有此效果。

因此,您可以在任一位置添加選項,它們適用於整個鍵。它們是累積的,我認為如果發生衝突,最後一個會獲勝。

如果要比較多個數字欄位,應將它們指定為單獨的鍵;GNUsort手冊

對於大多數應用程序,將跨越多個欄位的鍵視為數字不會達到您的預期。

引用自:https://unix.stackexchange.com/questions/546081