Como posso arredondar todos os números em um arquivo?

4

Como posso arredondar todos os números em um arquivo que chame várias colunas de números até uma certa precisão? Isso pode ser feito com o awk?

Uma única linha é assim:

text - 0.1655456615 - 0.158645 - 0.846554 - 0.85251 ##

EDIT: '-' é um delimitador de coluna.

    
por MaVe 08.11.2013 / 15:49

2 respostas

5

É mais fácil de fazer com perl :

perl -pe 's/[-+]?\d*(?:\.?\d|\d\.)\d*(?:[eE][-+]?\d+)?/sprintf("%.2g",$&)/ge'
    
por 08.11.2013 / 15:57
3

Se você tiver apenas o awk disponível:

awk '{
    while (match($0, /[0-9]+\.[0-9]+/)) {
        printf "%s%.2f", substr($0, 1, RSTART-1), substr($0, RSTART, RLENGTH)
        $0 = substr($0, RSTART+RLENGTH)
    }
    print
}'
    
por 08.11.2013 / 22:43

Tags