Delimitador está sendo alterado com campos

7

Eu tenho um arquivo com valores organizados em colunas e separados por vírgulas , como no arquivo abaixo:

324,01,1,113333600000,1,,
016,01,1,134954200000,1,,
770,01,1,109069200000,1,,
853,01,1,111518800000,1,,

Quando eu uso o seguinte comando awk , o delimitador está sendo alterado de vírgulas para espaços

Código:

awk -F, '{$4=$4/1024}{print $0}'

A saída torna-se:

324 01 1 110677343.75 1  
016 01 1 131791210.93 1  
770 01 1 106512890.62 1  
853 01 1 108905078.12 1 

Como posso alterar o valor do campo sem alterar o delimitador?

    
por Eng7 09.08.2015 / 16:30

2 respostas

16

Defina OFS também:

awk -F, -v OFS=, '{$4=$4/1024}1'

O OFS determina como os campos de saída são delimitados. Se você não definir, o padrão é um espaço.

    
por 09.08.2015 / 16:36
6

A resposta do muru está correta, mas eu prefiro usar o bloco BEGIN para esta tarefa:

awk 'BEGIN{FS=OFS=","}{$4=$4/1024}1'
    
por 09.08.2015 / 21:16