Dividir várias colunas em duas colunas com base na primeira coluna

1

Eu tenho um arquivo delimitado por tabulações grandes como abaixo

ENSBTAP00000053998    GO:0005576    GO:0006952          
ENSBTAP00000014280    GO:0005515                
XP_010996658.1    GO:0005515    GO:0032947          
ENSCAFP00000005761-D107    GO:0006826    GO:0006879    GO:0008199       
XP_010987712.1-D2    GO:0004579    GO:0008250    GO:0016021     
ENSBTAP00000018349-D5    GO:0003677    GO:0003700    GO:0005634    GO:0006355    GO:0043565

Como eu poderia converter a tabela acima como mostrado abaixo

ENSBTAP00000053998    GO:0005576
ENSBTAP00000053998    GO:0006952
ENSBTAP00000014280    GO:0005515
XP_010996658.1    GO:0005515
XP_010996658.1    GO:0032947
ENSCAFP00000005761-D107    GO:0006826
ENSCAFP00000005761-D107    GO:0006879
ENSCAFP00000005761-D107    GO:0008199
XP_010987712.1-D2    GO:0004579
XP_010987712.1-D2    GO:0008250
XP_010987712.1-D2    GO:0016021
ENSBTAP00000018349-D5    GO:0003677
ENSBTAP00000018349-D5    GO:0003700
ENSBTAP00000018349-D5    GO:0005634
ENSBTAP00000018349-D5    GO:0006355
ENSBTAP00000018349-D5    GO:0043565
    
por desu 05.07.2018 / 13:56

1 resposta

1

Com Awk:

awk '{for(i=2;i<=NF;i++) print $1,$i}' OFS='\t' file

ou Perl

perl -alne '$x = shift @F; print "$x\t$_" for @F' file
    
por 05.07.2018 / 14:04