Sort

排序命令在此文件上沒有按預期工作

  • November 3, 2020

我正在嘗試執行排序命令,但它不適用於此文件。我不確定為什麼。

sort -n -k+3 employee > hired2

說明說這應該根據僱用的月份對員工進行排序。

這是文件。MM/DD/YEAR 的日期

mgt Cooper John     06151995   66000
mgt Davidson Darla  04151992   69500
mgt MacDonald George  06151985 70000
act Smith Thomas  04102002     56000
act Smith Alecia  04121991     65000
mis MacLeod Janice  01021977   90000
mis Mack Joe  02252003         85000
mis Winslow Sarah  02151995    58000
adm Smith Dexter  01021975    100000
mis Benneth Joan  08152001     79000
mgt Neason Elizabeth  10251998 65500
act NeSmith Donald  11301966   99500

這就是我得到的:

act NeSmith Donald  11301966    99500
act Smith Alecia    04121991    65000
act Smith Thomas    04102002    56000
adm Smith Dexter    01021975    100000
mgt     Cooper John     06151995    66000
mgt Davidson Darla  04151992    69500
mgt MacDonald George    06151985    70000
mgt Neason Elizabeth    10251998    65500
mis Bennett Joan    08152001    79000
mis Mack Joe    02252003    85000
mis MacLeod Janice  01021977    90000
mis Winslow Sarah   02151995    58000

有什麼可能是錯的?不會是間距問題吧?

您按錯誤的列排序。列的編號從 1 開始,月份列是第 4 列。所以試試這個:

sort -n -k+4 employee > hired2

一些舊版本的排序從零開始計算欄位,並使用符號 +n 作為鍵的開始欄位。較新版本的 sort 可能接受過時的符號,但我沒有檢查它們是否從零開始計數。也許教練指的是/正在使用舊版本……乾杯,drl

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