将数据从一个文件分配到另一个文件

时间:2014-02-27 12:42:31

标签: sed awk

我的工作是将一个文件中的行数据添加到具有相同ID的另一个文件中。我可以使用哪个程序来完成这项工作。

输入file1

481063384 PBPb
481063384 PBPb
481063384 LT_GEWL
481063384 lysozyme_like
481063384 SLT
481063384 emtA
481063406 Hsp33
481063406 Hsp33
481063406 COG1281
481063406 HSP33

输入文件2

481063384 putative soluble lytic transglycosylase 
481063406 chaperonin HslO

期望输出

481063384 putative soluble lytic transglycosylase PBPb
481063406 chaperonin Hsp33

条件首先我需要提取重复数字的第一行,我需要分配或添加。 请帮我。 我觉得awk会很有用,但我不擅长awk编程。

3 个答案:

答案 0 :(得分:1)

你可以试试这个,

awk 'NR==FNR{ if( $1 in a) next;a[$1]=$2;next}{$0=$0" "a[$1]}1' file1 file2

答案 1 :(得分:1)

您可以使用join,如果您想要每行的第一行,请使用awk:

join file2 file1 | awk '{if(a!=$1) print}{a=$1}'

给出:

481063384 putative soluble lytic transglycosylase PBPb
481063406 chaperonin HslO Hsp33

答案 2 :(得分:1)

awk的另一种方式:

awk 'NR==FNR{!seen[$1]++&&line[$1]=$2;next}$0=$0 FS line[$1]' file{1,2}
相关问题