removendo a notação exponencial em dados de texto

1

Eu tenho três dados de texto (x, y, z); x =

0.230470334533783E+07 
0.230470334324697E+07 

y =

-0.487481717139422E+07 
-0.487481717040853E+07

z =

0.339518702164184E+07 
0.339518702104482E+07

Eu preciso remover a notação exponencial "E" em todos os dados (com 4 pontos decimais) para três arquivos de texto. Então eu preciso combinar os três dados em um arquivo de texto como:

combined_data:

2304703.3453  -4874817.1714  3395187.0216 
2304703.3432  -4874817.1704  3395187.0210
    
por deepblue_86 26.10.2015 / 12:15

1 resposta

2

Usando uma combinação de perl (para analisar os números) e paste :

$ paste x y z | perl -lane 'print join (" ", map {sprintf("%.4f", $_)} @F)'
2304703.3453 -4874817.1714 3395187.0216
2304703.3432 -4874817.1704 3395187.0210

paste combina os arquivos:

$ paste x y z
0.230470334533783E+07   -0.487481717139422E+07  0.339518702164184E+07
0.230470334324697E+07   -0.487481717040853E+07  0.339518702104482E+07
perl -a divide a entrada na matriz @F . Em seguida, uso map para aplicar sprintf("%.4f") a cada elemento da matriz e, em seguida, combine-os usando join() .

    
por muru 26.10.2015 / 12:47