Classificando arquivo pela segunda coluna

13

Como posso manipular um arquivo de texto separado por tabulações de duas colunas, classificando pelo primeiro elemento da segunda coluna (somente se o primeiro elemento da coluna for o mesmo)?

Exemplo:

Arquivo de entrada 1

A   1-2
A   6-8
A   3-4
B   7-10
B   5-9

Saída esperada: Arquivo 2

A   1-2
A   3-4
A   6-8
B   5-9
B   7-10
    
por dovah 16.07.2014 / 09:12

1 resposta

21

Use a sort ' -k option para classificar por (vários ) colunas de uma só vez:

$ sort -k1,1 -k2n input
A   1-2
A   3-4
A   6-8
B   5-9
B   7-10

-k1,1 classifica pela primeira coluna primeiro, depois -k2n pelo segundo numericamente quando a primeira coluna foi empatada, então você obtém a saída na ordem desejada: classificando pelo primeiro elemento da segunda coluna, somente se o primeiro elemento da coluna é o mesmo.

Ao ordenar numericamente, ele só examinará o campo até que ele pare de ser um número, de modo que você possa comparar apenas o primeiro elemento dele.

    
por 16.07.2014 / 09:31

Tags