如何粘贴两行不同的文件?

时间:2016-12-15 13:43:51

标签: bash paste

我想以表格格式组合两个文件(见下文),其中file1信息限制为第1列和第2列,file2信息限制在第3列和第4列(制表符分隔)。

问题是这些文件有不同的行号。这样,bash paste并没有按照我的计划“粘贴”。 以下是文件:

档案1

../selected/rpoB_aln_cor_selected.fas   
754857223   Paenibacillus borealis
754847241   Paenibacillus durus
820147112   Paenibacillus durus ATCC 35681
647247545   Paenibacillus forsythiae T98
686560542   Paenibacillus graminis
AML91_04045 Paenibacillus jilunlii
740788177   Paenibacillus odorifer
515232203   Paenibacillus polymyxa ATCC 842
AMQ83_22310 Paenibacillus riograndensis CAR114
AMQ84_09005 Paenibacillus riograndensis CAS34
PRIO_6145   Paenibacillus riograndensis SBR5
644582147   Paenibacillus sabinae T27
748290938   Paenibacillus sonchi X19-5
738698737   Paenibacillus sophorae S27
655082470   Paenibacillus sp. HW567
740913783   Paenibacillus stellifer
738759525   Paenibacillus wynnii

文件2

../selected/rpsB_aln_cor_selected.fas   
738801471   Paenibacillus borealis
754845814   Paenibacillus durus
647238899   Paenibacillus durus ATCC 35681
647253447   Paenibacillus forsythiae T98
686558702   Paenibacillus graminis
AML91_12385 Paenibacillus jilunlii
738797351   Paenibacillus odorifer
503074989   Paenibacillus polymyxa ATCC 842
AMQ83_29390 Paenibacillus riograndensis CAR114
AMQ84_25055 Paenibacillus riograndensis CAS34
PRIO_4043   Paenibacillus riograndensis SBR5
644577490   Paenibacillus sabinae T27
521103275   Paenibacillus sonchi X19-5
738689566   Paenibacillus sophorae S27
518752441   Paenibacillus sp. HW567
740911441   Paenibacillus stellifer
738763159   Paenibacillus wynnii
647238899   Paenibacillus zanthoxyli JH29

在命令paste file1 file2 > output之后,我有以下输出:

../selected/rpoB_aln_cor_selected.fas       ../selected/rpsB_aln_cor_selected.fas   
754857223   Paenibacillus borealis  738801471   Paenibacillus borealis
754847241   Paenibacillus durus 754845814   Paenibacillus durus
820147112   Paenibacillus durus ATCC 35681  647238899   Paenibacillus durus ATCC 35681
647247545   Paenibacillus forsythiae T98    647253447   Paenibacillus forsythiae T98
686560542   Paenibacillus graminis  686558702   Paenibacillus graminis
AML91_04045 Paenibacillus jilunlii  AML91_12385 Paenibacillus jilunlii
740788177   Paenibacillus odorifer  738797351   Paenibacillus odorifer
515232203   Paenibacillus polymyxa ATCC 842 503074989   Paenibacillus polymyxa ATCC 842
AMQ83_22310 Paenibacillus riograndensis CAR114  AMQ83_29390 Paenibacillus riograndensis CAR114
AMQ84_09005 Paenibacillus riograndensis CAS34   AMQ84_25055 Paenibacillus riograndensis CAS34
PRIO_6145   Paenibacillus riograndensis SBR5    PRIO_4043   Paenibacillus riograndensis SBR5
644582147   Paenibacillus sabinae T27   644577490   Paenibacillus sabinae T27
748290938   Paenibacillus sonchi X19-5  521103275   Paenibacillus sonchi X19-5
738698737   Paenibacillus sophorae S27  738689566   Paenibacillus sophorae S27
655082470   Paenibacillus sp. HW567 518752441   Paenibacillus sp. HW567
740913783   Paenibacillus stellifer 740911441   Paenibacillus stellifer
738759525   Paenibacillus wynnii    738763159   Paenibacillus wynnii
    647238899   Paenibacillus zanthoxyli JH29

在最后一行中,信息从左侧错位一列。 我理想的输出将如下所示(请注意,最后一行在其开头有两个缩进):

../selected/rpoB_aln_cor_selected.fas       ../selected/rpsB_aln_cor_selected.fas   
754857223   Paenibacillus borealis  738801471   Paenibacillus borealis
754847241   Paenibacillus durus 754845814   Paenibacillus durus
820147112   Paenibacillus durus ATCC 35681  647238899   Paenibacillus durus ATCC 35681
647247545   Paenibacillus forsythiae T98    647253447   Paenibacillus forsythiae T98
686560542   Paenibacillus graminis  686558702   Paenibacillus graminis
AML91_04045 Paenibacillus jilunlii  AML91_12385 Paenibacillus jilunlii
740788177   Paenibacillus odorifer  738797351   Paenibacillus odorifer
515232203   Paenibacillus polymyxa ATCC 842 503074989   Paenibacillus polymyxa ATCC 842
AMQ83_22310 Paenibacillus riograndensis CAR114  AMQ83_29390 Paenibacillus riograndensis CAR114
AMQ84_09005 Paenibacillus riograndensis CAS34   AMQ84_25055 Paenibacillus riograndensis CAS34
PRIO_6145   Paenibacillus riograndensis SBR5    PRIO_4043   Paenibacillus riograndensis SBR5
644582147   Paenibacillus sabinae T27   644577490   Paenibacillus sabinae T27
748290938   Paenibacillus sonchi X19-5  521103275   Paenibacillus sonchi X19-5
738698737   Paenibacillus sophorae S27  738689566   Paenibacillus sophorae S27
655082470   Paenibacillus sp. HW567 518752441   Paenibacillus sp. HW567
740913783   Paenibacillus stellifer 740911441   Paenibacillus stellifer
738759525   Paenibacillus wynnii    738763159   Paenibacillus wynnii
        647238899   Paenibacillus zanthoxyli JH29

1 个答案:

答案 0 :(得分:0)

  

在最后一行中,信息向左移一列。

问题来自以下事实:输入文件列由TAB分隔,paste也由TAB分隔其输出列,但只有一个TAB,而不考虑输入结构(这不是它的工作)毕竟)。

  

我想要的输出将类似于以下内容(请注意,最后一行的开头有两个缩进):

一个简单的解决方法是处理paste输出,以便将领先的制表符加倍:

paste file1 file2 | sed 's/^\t/&&/' >output