awk se outra condição não funcionar

1

Eu preciso adicionar o valor 0,0 na terceira coluna no arquivo csv para todas as linhas que eu puder adicionar usando o seguinte comando.

awk -v FS=',' -v OFS=',' '{$2=$2",0.0"} 1' test.csv

No entanto, quando estou verificando se a terceira coluna existe na linha, apenas adicione o valor usando o seguinte comando não está funcionando.

awk -F, '{ if (length($2) != 0)  'awk -v FS=',' -v OFS=',' '{$2=$2",0.0"} 1'' ;}' test.csv

test.csv

2016-10-25 11:18:42.945 UTC,"dummy",546

2016-10-25 11:18:42.950 UTC

set misc_data = 'La Carmela de Boracay Resort Hotel|Twin 
Deluxe|Breakfast|AC|NA|Triple Sharing|-1_U_Miss_NINIA_HANNAH_FUGUIAO_-1_Non_false_#|'

1,2,5
3

OUTPUT:

2016-10-25 11:18:42.945 UTC,"dummy",0.0,546

1,2,0.0,5
    
por dhaval 11.11.2016 / 14:05

1 resposta

0

Você realmente não precisa de um teste if explícito - você pode incorporar a lógica em um padrão awk

awk -v FS=',' -v OFS=',' 'NF>1 && length($2) !=0 {$2=$2",0.0"; print}' test.csv
2016-10-25 11:18:42.945 UTC,"dummy",0.0,546
1,2,0.0,5

Se você quiser usar if , a sintaxe será if (condition) {expression} , por exemplo,

awk -v FS=',' -v OFS=',' 'NF>1 {if (length($2) !=0) {$2=$2",0.0"; print}}' test.csv
    
por 11.11.2016 / 14:23

Tags