以下のように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