CSVファイルで列値を1ずつ増やす方法

CSVファイルで列値を1ずつ増やす方法

以下のように3つの列を持つテキストファイルがあります。

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

今度は3番目の列を追加したいと思います。出力は次のとおりです。

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

関連情報