Estou usando este comando:
awk 'NR>1 {print $1" "$2}' fort.75 > newfort.75
e obtendo a saída como
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Mas o o/p desejado é
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Os valores no primeiro campo devem ser formatados de forma que todos tenham a mesma largura. Além disso, o segundo campo deve começar na mesma coluna em cada linha.
Responder1
Você possivelmente quer dizer que gostaria de obter saída em colunas (embora no seu exemplo os dados também sejam diferentes). Se sim, tente isto:
awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75
Isso separaria sua saída por um caractere TAB \t
.
Outra possibilidade é usar printf
conforme sugerido por Archemar:
awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75
onde a primeira coluna é formatada (neste caso) com largura de 4 caracteres - ajuste conforme desejado. O espaço é preenchido pelo espaço " " (sem trocadilhos) e nenhuma TAB é usada. Os números de ponto flutuante, no entanto, também são reformatados, portanto, verifique se isso está correto para você. Caso contrário, trate a segunda coluna como uma string:
awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75