o comando de ordenação não funciona como previsto neste arquivo

0

estou tentando fazer um comando de classificação, mas ele não funciona neste arquivo, não tenho certeza do porquê.

 sort -n -k+3 employee > hired2

a instrução diz que isso deve ordenar o funcionário com base no mês contratado

Aqui está o arquivo. MM / DD / ANO para as datas

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

Isso é o que eu recebo

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

O que poderia estar errado? Não poderia ser um problema de espaçamento, não é?

    
por Kat Mi 10.10.2017 / 17:22

4 respostas

2

Você está classificando por uma coluna errada. A numeração das colunas começa com 1 e a coluna do mês é 4. Então tente isto:

sort -n -k+4 employee > hired2
    
por 10.10.2017 / 17:34
2

Algumas versões antigas de ordenação começaram a contar os campos em zero e usaram a notação + n para o campo inicial de uma chave. Versões mais recentes de classificação podem aceitar a notação obsoleta, mas eu não verifiquei se elas começam a contar a zero. Talvez o instrutor estivesse se referindo a / está usando uma versão antiga ... cheers, drl

    
por 10.10.2017 / 18:07
0

the instruction says this should sort the employee based on the month hired

Qual instrução? Eu recebo o resultado esperado aqui usando

$ sort -n -k 4 <file>

baseado em copiar / colar seus dados de teste - isso implica que o arquivo contém espaços em vez de guias, se houver algum.

    
por 10.10.2017 / 17:35
0

Se também fosse legível, alinharia as colunas:

$ 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
    
por 10.10.2017 / 17:43

Tags