このファイルでは、ソートコマンドは期待どおりに機能しません。

このファイルでは、ソートコマンドは期待どおりに機能しません。

ソートコマンドを実行しようとしていますが、このファイルでは機能しません。理由はわかりません。

 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

無効な列に基づいてソートしています。列番号は1から始まり、月の列は4番目です。だからこれを試してみてください:

sort -n -k+4 employee > hired2

答え2

いくつかの以前のバージョンのソートは、0からフィールドの計算を開始し、+ nシンボルをキーの開始フィールドとして使用します。最新バージョンのsortは未使用のシンボルを受け入れることができますが、ゼロから計算が始まることを確認していません。おそらく、コーチが以前のバージョンに言及または使用している可能性があります...乾杯、drl

答え3

指示に従って、雇用された月に基づいて従業員を並べ替える必要があります。

どんな命令ですか?ここで私は次のようにして期待される結果を得ました。

$ sort -n -k 4 <file>

テストデータのコピー/貼り付けに基づいています。これは、ファイルにタブ(存在する場合)の代わりにスペースが含まれていることを意味します。

答え4

読むことができる必要がある場合は、列を並べ替えます。

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

関連情報