Dividir números com separador de milhares usando editor de fluxo (sed)

1

Eu quero inserir períodos como separadores de milhares em números usando sed . Como posso fazer isso?

Exemplo de entrada / saída: 29371923471239 deve se tornar 29.371.923.471.239 .

    
por Jleeeeny 26.02.2012 / 22:15

3 respostas

2

Tente isso

echo "29371923471239" | sed -r ':A;s|([0-9]+)([0-9]{3})|,|g;t A'
29,371,923,471,239

Isso funciona dividindo o número em duas partes, os últimos três dígitos e tudo mais. Em seguida, ele adiciona um , ao final de todo o resto e ramifica de volta para o início. Você pode ver isso trabalhando com

echo "29371923471239" | sed -r ':A;s|([0-9]+)([0-9]{3})|,|g'
29371923471,239
    
por 26.02.2012 / 22:29
2

USE O GHC-ONELINERS PARA UM ÓTIMO BOM

$> echo -n 29371923471239 | ghc -e "import Data.List.Split" -e "putStrLn . reverse . intercalate \".\" . splitEvery 3 . reverse =<< getContents"
29.371.923.471.239

!

    
por 26.02.2012 / 22:54
1

De: link

sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/,/;ta'

echo "981273981723" | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/,/;ta' 981,273,981,723

    
por 26.02.2012 / 22:28

Tags