【发布时间】:2018-11-03 20:12:40
【问题描述】:
我有以下三个文件
file1:
1000001
1000002
100001 COG4658
100002 COG4656
100003
100004 COG2878
100005
100006 COG4657
100007
file2:
1000001
1000002 COG1943
100001 COG4658
100002 COG4656
100003
100004 COG2878
100005
100006 COG4657
100007
file3:
1000001
1000002 NOG04887
100001 COG4658
100002 COG4656
100003
100004 COG2878
100005
100006 COG4657
100007 COG2202
现在我编写了合并文件的代码,如果缺少值,则按 file1 - file2 - file3 的顺序在第一列中获取每个 id 的值。
awk 'BEGIN {FS=OFS="\t"} NF > 1 {a[$1] = $2} END {for (i in a) print i, a[i]}' file3 file2 file1
这给了我以下输出:
1000002 COG1943
100001 COG4658
100002 COG4656
100004 COG2878
100006 COG4657
100007 COG2202
这是正确的,但我想列出第 1 列的所有值,如果三个文件中的所有值都是空的。我需要如何修改我的代码?
【问题讨论】:
-
请务必在代码标签中提及预期输出。
标签: awk