列 2 に基づいて列 3 を比較する awk コマンドがあります。列 2 (ID) が等しい場合、列 3 (クーポン) を比較して値が異なるかどうかを確認し、0 または 1 としてフラグを立てます。
awk 'BEGIN{OFS=" ";} NR==1 { print; next } { print $0, ($2 == a) ? (($3 == b) ? "0" : "1") : "0"; a = $2; b = $3 }' testv1.txt
サンプル入力。
Month ID Coupon Reprice
2013-12 2 4.00
2014-01 2 4.00
2014-02 2 4.50
2014-03 2 4.50
2013-10 3 3.00
2013-11 3 3.00
2013-12 3 3.25
2014-01 3 3.25
2014-02 3 3.25
2014-03 3 3.50
これが現在の出力です。
Month ID Coupon Reprice
2013-12 2 4.00 0
2014-01 2 4.00 0
2014-02 2 4.50 1
2014-03 2 4.50 0
2013-10 3 3.00 0
2013-11 3 3.00 0
2013-12 3 3.25 1
2014-01 3 3.25 0
2014-02 3 3.25 0
2014-03 3 3.50 1
私が望むのは、ID が同じ場合、reprice フラグ値 1 を 1 回だけ発生させることです (最後の reprice フラグは 1 ではなく 0 になります)。
Month ID Coupon Reprice
2013-12 2 4.00 0
2014-01 2 4.00 0
2014-02 2 4.50 1
2014-03 2 4.50 0
2013-10 3 3.00 0
2013-11 3 3.00 0
2013-12 3 3.25 1
2014-01 3 3.25 0
2014-02 3 3.25 0
2014-03 3 3.50 0
投稿ミス申し訳ありません。