Como o software visualizador CSV parece ser capaz de detectar números de ponto flutuante pela inclusão de uma parte fracionária, os números devem ser convertidos para ter pelo menos um decimal.
Uma maneira de fazer isso com awk
:
awk -F, -vOFS="," '$1 == int($1) { $1 = sprintf("%.1f", $1) } 1' file >newfile
Isso testaria o primeiro campo separado por vírgula para ver se era um número inteiro. Nesse caso, ele iria reescrever o campo como n.0
(onde n
é o número original). O 1
no código causaria a saída de todas as linhas.
O resultado é escrito no novo arquivo newfile
.
Uma solução semelhante usando sed
:
sed 's/^\([0-9]*\),/.0,/' file >newfile
Aqui, combinamos qualquer número de dígitos seguido imediatamente por uma vírgula e substituímos os mesmos dígitos, .0
e vírgula. Isso ignoraria os números que já têm partes fracionárias, mas adicionaria .0
a números que não têm isso.