Classificar Unix por várias colunas

4

Eu tenho dificuldade em entender o tipo unix. Considere o seguinte arquivo (separador separado)

aa  ~ a1
aa  B
b   A
b   ~ e
bb  B
bb  ~ B

Ao ligar:

cat tmp2 | sort -t $'\t' -k1,2

Eu obtenho

aa  ~ a1
aa  B
b   A
bb  B
bb  ~ B
b   ~ e

Pelo que entendi, -t $ '\ t' diz para considerar o separador como sendo uma guia em vez de um espaço em branco e -k1,2 diz para classificar pela primeira coluna e, se duas linhas tiverem o mesmo coluna punho, em seguida, o segundo. Mas nesse caso, meu último 'b' não deveria aparecer na quarta linha?

    
por giulio 07.02.2015 / 21:20

1 resposta

8

Não, -k1,2 diz para classificar na parte da linha que começa no início do primeiro campo e termina no final do segundo campo.

Para classificar no primeiro campo e depois no segundo, é:

sort -k1,1 -k2,2
    
por 07.02.2015 / 21:29