У меня есть следующие три файла
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, если значение должно отсутствовать.
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, в том числе, если значения пустые во всех трех файлах. Как мне нужно изменить мой код?