,
File1には、フィールド区切り記号である次のデータがあります。
1,T_EXIT,9053.0,10325.0,, ,
2,V_TURN,120.0,11334.0,, ,
3,Q_ENTRY,122.0,190.0,, ,
4,Q_ENTRY_RUN,130.0,569.0,, ,
ファイル2にデータがある
VDS SYNC
Dig T_EXIT OPEN
Ana Q_ENTRY CLOSE
Dig CORE_T
比較したいファイル2の列2そしてファイル1の列2EXCAT MATCHが存在する場合は、file2のfile1の列6と列7の列3をコピーしたいと思います。
私は出力が次のようになります:
1,T_EXIT,9053.0,10325.0,,OPEN,OPEN
2,V_TURN,120.0,11334.0,, ,
3,Q_ENTRY,122.0,190.0,,CLOSE,CLOSE
4,Q_ENTRY_RUN,130.0,569.0,, ,
以下のコードを試しましたが、目的の出力を取得できませんでした。どのような修正が必要ですか?
awk 'NR==FNR{A[$2]=$3;next}$2 in A{$6=A[$2]}1' file2 file1 > test
ベストアンサー1
実際に欠落しているのは、ファイル間の入力フィールドと出力フィールドの区切り文字が変更されたことです。
$ awk 'NR==FNR{A[$2]=$3;next} $2 in A{$7=$6=A[$2]}1' file2 FS=, OFS=, file1
1,T_EXIT,9053.0,10325.0,,OPEN,OPEN
2,V_TURN,120.0,11334.0,, ,
3,Q_ENTRY,122.0,190.0,,CLOSE,CLOSE
4,Q_ENTRY_RUN,130.0,569.0,, ,