【发布时间】:2018-04-18 01:21:24
【问题描述】:
- 我有两个文件(文件 1 和文件 2)
我正在尝试将 File1 的 Column1 和 2 的字符串与 File2 的 Column4 和 5 进行比较。除此匹配外,File2的column6还需要匹配某个字符串,如SO或CO(因为FILE1的column3和column分别为SO和CO),然后将FILE2的column7替换为FILE1的column3,否则保持其他不变。
-
我尝试修改并使用论坛提供的解决方案解决类似问题,但没有成功。
FILE1 type code SO CO other 7757 1 6941.958 138.922 149.17 7757 2 8666.123 198.908 225.67 7757 4 2795.885 334.875 378.68 7759 GT3 222.104 13.5 734.62 7768 CT2 0 0 0 7805 6 3796.677 75.175 79.09 FILE2 "US","01073",,"7757","1","SO","10","299" "US","01073",,"7758","1","SO","10","299" "US","01073",,"7757","1","NO","10","299" "US","01073",,"7757","1","CO","10","299" "US","01073",,"7757","4","MO","10","299" "US","01073",,"7757","1","GO","10","299" "US","01073",,"7805","6","CO","10","299" Required output: "US","01073",,"7757","1","SO","6941.958","299" "US","01073",,"7758","1","SO","10","299" "US","01073",,"7757","1","NO","10","299" "US","01073",,"7757","1","CO","138.922","299" "US","01073",,"7757","4","MO","10","299" "US","01073",,"7757","1","GO","10","299" "US","01073",,"7805","6","CO","75.175","299"我尝试过的解决方案(仅适用于 CO):
tr -d '"' < FILE2 > temp # to remove double quote awk 'NR==FNR{A[$1,$2]=$3;next} A[$4,$5] && $6=="CO" {$7=A[$1,$2]; print}' FS=" " OFS="," FILE1 temp > out
【问题讨论】:
-
非常感谢您帮助编辑我的代码!随机数。
标签: awk