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.
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?
A resposta do muru está correta, mas eu prefiro usar o bloco BEGIN para esta tarefa:
awk 'BEGIN{FS=OFS=","}{$4=$4/1024}1'
Tags text-processing awk