Adicionando entradas ao final de uma linha via awk

2

Eu queria saber se alguém seria capaz de apontar o que está errado aqui. Eu tenho um arquivo txt de dados, delimitado por um espaço, de 7 colunas por 10000 linhas. Eu quero adicionar duas colunas extras um com o valor 255.788 e 176.009 para cada entrada de linha.

Eu usei o seguinte script awk:

#! bin/gawk -f

BEGIN {}
{ 
    print $0, 255.788, 176.009;
}
END{}

No entanto, este script adiciona os novos valores ao início da linha seguinte. O novo caractere de linha ^ M aparece no final da linha dos dados antigos como este;

1 274.458 165.208 256 192 305.989 142.202^M 255.788 176.009

2 276 164.278 256 192 305.963 142.037^M 255.788 176.009

Qualquer ajuda ou ideia seria muito apreciada!

Caso isso seja confuso, quero alcançar isso:

1 274.458 165.208 256 192 305.989 142.202 255.788 176.009^M
    
por Tim 19.10.2014 / 09:48

2 respostas

3

Basta remover o CR antes do processamento e adicioná-lo depois:

{
    gsub("\r","");
    print $0,255.788,176.009,"\r"
}
    
por 19.10.2014 / 10:13
2

Se você sabe que os dados são CRLF terminados, então você pode definir o registro separador de awk de acordo com o BEGIN block

BEGIN {RS="\r\n";ORS=RS}
{ 
    print $0, 255.788, 176.009;
}
END{}
    
por 19.10.2014 / 13:34

Tags