classificar a pergunta de uso [duplicada]

0

Eu tenho um arquivo de lixo como este:

Y10 122.894054 7.653405
B3 124.406526 8.281803
B3' 125.000684 8.389677
A11 102.801917 9.288624
A11' 127.661564 8.216719
D4 117.182791 7.418388

e eu quero classificar a primeira coluna pelo número, assim:

B3 124.406526 8.281803
B3' 125.000684 8.389677
D4 117.182791 7.418388
Y10 122.894054 7.653405
A11 102.801917 9.288624
A11' 127.661564 8.216719

Eu uso este comando, mas não está funcionando para mim:

sort -k1,23 -k1n junk
    
por Mo12 07.10.2016 / 14:20

1 resposta

0

Adicionando temporariamente um (espero) separador exclusivo (por exemplo, "#") antes do primeiro número:

sed 's/^\([^0-9]*\)/#/' junk | sort -t '#' -k 2n,2 | tr -d '#'

Este é o caso geral em que classifico o primeiro número em qualquer arquivo de texto que não contenha '#' antes do primeiro número.

Você também pode usar um separador mais exótico se o seu tipo gostar:

SEP='printf '''
sed "s/^\([^0-9]*\)/$SEP/" junk | sort -t "$SEP" -k 2n,2 | tr -d "$SEP" 
    
por 07.10.2016 / 14:27

Tags