como incrementar um valor de coluna com 1 em um arquivo csv

0

Eu tenho um arquivo de texto com 3 colunas, conforme abaixo.

$ cat test.txt
1,A,300
1,B,300
1,C,300

Agora quero incrementar apenas a terceira coluna, a saída deve ser como abaixo

1,A,300
1,B,301
1,C,302

Até agora eu tentei como

awk -F, '{$3=$3+1;print}' OFS=, test.txt

Mas a saída está chegando,

1,A,301
1,B,301
1,C,301

Por favor, sugira como conseguir o resultado desejado?

    
por swapneil 01.02.2017 / 19:23

2 respostas

0

awk -F, 'BEGIN {offset=0; OFS=","} {print $1,$2,$3+offset++}"' /path/to/input

ou, alternativamente:

awk -F, 'BEGIN {OFS=","} {print $1,$2,$3+(NR-1)}"' /path/to/input
    
por 01.02.2017 / 19:48
0

Sua abordagem inicial com um pequeno ajuste:

awk -F',' 'BEGIN { OFS = FS } { $3 = $3 + (NR-1); print }' test.txt

A variável NR contém o número de registros (linhas) lidos até o momento.

    
por 01.02.2017 / 20:46

Tags