ordena cada coluna (campo) em um arquivo separadamente [duplicado]

1

Estou ciente de que é possível sort principalmente por um campo e secundariamente por outro campo. Por exemplo:

$ echo -e "1 5\n1 4\n8 2\n1 9" | sort -k 1,1n -k 2,2n
1 4
1 5
1 9
8 2
$ 

No entanto, estou correto que sort sempre mantém as linhas intactas, por exemplo, Não é possível classificar de forma que a saída seja a seguinte:

1 2
1 4
1 5
8 9

Se isso não for possível com sort , qual seria a ferramenta correta para isso?

    
por Martin 31.01.2016 / 13:58

2 respostas

3

Como Tom Zych anotou

paste -d ' ' <(echo -e "1 5\n1 4\n8 2\n1 9" |
               cut -f1 -d' ' |
               sort -n
           ) <(echo -e "1 5\n1 4\n8 2\n1 9" |
               cut -f2 -d' ' |
               sort -n
           )
    
por 31.01.2016 / 14:48
1

Se eu estivesse fazendo isso, primeiro dividiria as linhas em campos, cada campo indo para o seu próprio arquivo; poderia usar cut ou awk ou vários outros ferramentas para isso. Então sort cada arquivo separadamente. Então paste eles de volta juntos.

    
por 31.01.2016 / 14:08

Tags