我有一个包含 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