【发布时间】:2018-08-21 23:14:37
【问题描述】:
比较两个文件的第一列。如果匹配,则将同一记录的值从 FILE2 转移到 FILE1。如果没有找到匹配项,填写“NA”
文件1
123 B
124 A
125 N
129 C
134 B
141 T
167 8
179 5
文件2
123 1 1
123 2 1
124 1 3
124 2 3
129 6 1
129 7 1
134 5 1
134 9 1
167 8 2
167 8 2
期望的输出
123 B 1 2 1
124 A 1 2 3
125 N NA
129 C 6 7 1
134 B 5 9 1
141 T NA
167 8 8 8 2
179 5 NA
我已将此代码用于丢失的记录,但我仍然无法为找到的记录转置行:
awk 'NR==FNR{a[$1]=$2;next;}{print $0 " " ($1 in a ? a[$1] : "NA")}' FILE2 FILE1
123 B 2
124 A 2
125 N NA
129 C 7
134 B 9
141 T NA
167 8 8
179 5 NA
提前致谢
【问题讨论】:
-
请解释如何获得预期输出的第三列。
标签: awk