新しい行の2番目の列の各「単語」を印刷し、各新しい行の最初の列のテキストをコピーする必要があります。列はタブで区切られ、2番目の列のすべての「単語」は「GO:」で始まり、スペースで区切られます。また、各行には1から数十までのさまざまな「単語」数があります。
例えば
TRINITY_DN23871_c0_g1_i1 GO:0003735 GO:0005783 GO:0005829
TRINITY_DN6318_c1_g1_i1 GO:0004707 GO:0005524
希望の出力
TRINITY_DN23871_c0_g1_i1 GO:0003735
TRINITY_DN23871_c0_g1_i1 GO:0005783
TRINITY_DN23871_c0_g1_i1 GO:0005829
TRINITY_DN6318_c1_g1_i1 GO:0004707
TRINITY_DN6318_c1_g1_i1 GO:0005524
私はawkを使ってみました。
awk -v RS=" " '{print}' unique.ID_all.unique.GOs2
しかし、私が得るものは
TRINITY_DN23871_c0_g1_i1
GO:0003735
GO:0005783
GO:0005829
TRINITY_DN6318_c1_g1_i1
GO:0004707
GO:0005524
アイデアが足りません。誰でも助けることができますか?
ベストアンサー1
2からフィールド数(NF
)まで繰り返し、最初のフィールドと異なるフィールドをタブで区切って印刷できます。
awk '{ for (i=2;i<=NF;i++) print $1"\t"$i }' unique.ID_all.unique.GOs2