awk está colocando a última coluna em uma nova linha

1

Eu tenho isso

    -77.199997 23.6343749630 39.9989584580 
    -80.000000 23.6364583430 39.9989584580
    -81.599998 23.6385417220 39.9989584580

Eu quero reorganizar as colunas para que ele leia a coluna 2, coluna 3, coluna 1 (lat, long, elevation)

Eu tenho usado o awk muitas vezes antes, mas por alguma razão quando reordenando as colunas, ele sai assim, com um espaço extra

     32.1614584410 43.3385414490
     -2019.400024 
     32.1635418210 43.3385414490
     -2016.800049 
     32.1656252000 43.3385414490
     -2018.500000 

Eu tenho muitos mais, mas alguém poderia me dizer por que está fazendo isso ou estou faltando alguma coisa

    awk -F" " '{print " "$2" "$3" "$1" "}' infile.xyz > outfile.xyz
    awk '{print $2 $3 $1}' infile.xyz > outfile.xyz
    awk -F" " '{print ""$2" "$3" "$1""}' infile.xyz > outfile.xyz
    
por lbeazy 03.02.2016 / 00:26

2 respostas

2

Eu tive que executar o dos2unix em todos os infiles e tudo funcionou bem depois disso.

    
por 03.02.2016 / 16:49
1

Primeiro, certifique-se de estar usando espaços e não as guias no arquivo de entrada.

Em seguida, tente separar as variáveis por vírgulas, assim:

awk '{print $2,$3,$1}' infile.xyz > output.xyz

Se você colocar as variáveis lado a lado, como em $2 $3 $1 , awk as concatena.

Além disso, você pode querer experimentar a função printf , pois ela fornece melhores recursos de formatação.

    
por 03.02.2016 / 01:37

Tags