如何在 csv 文件中将列值增加 1

如何在 csv 文件中将列值增加 1

我有一个包含 3 列的文本文件,如下所示。

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

现在我只想增加第三列,输出应该如下所示

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

到目前为止我已经尝试过,

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

但输出是这样的,

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

请建议,如何达到预期的输出?

答案1

您最初的方法稍作调整:

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

NR变量保存到目前为止读取的记录(行)数。

答案2

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

或者,或者:

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

相关内容