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
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?
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
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.
Tags awk