我有一个包含 3 列的文本文件,如下所示。
$ cat test.txt
1,A,300
1,B,300
1,C,300
到目前为止,我已经尝试过,
awk -F, '{$3=$3+1;print}' OFS=, test.txt
但输出如下:
1,A,301
1,B,301
1,C,301
&下面是我想要的输出
现在我只想增加第三列,输出应该如下所示
1,A,300
1,B,301
1,C,302
我怎样才能达到预期的输出?
最佳答案
可能是,假设线像您的样本一样是连续的)
awk -F ',' '{sub($3"$",$3+NR-1)}7' YourFile
它使用行号作为增量值,改变行尾而不是字段值(与 awk POV 不同,不需要用分隔符重建行)
可修改行之间的空行或其他行的替代方法(我任意使用
NF
作为过滤器,但如果有的话,取决于您的标准)awk -F ',' 'NF{sub($3"$",$3+i++)}7' YourFile
关于awk - 如何在csv文件中用递增的数字递增列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994903/