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 的第 2 列如果存在 EXCAT 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,, ,
答案2
awk 似乎是一个错误的工具。这听起来也像是一个家庭作业问题。我会用:
tr ' ' ',' <File2 >File3
join -t ',' -1 2 -2 2 File1 File3