Simplesmente com awk :
awk '{ r=$0; sub($1,"",r); a[$1]=(a[$1])? a[$1]"\t"r : r }
END{ for(i in a) { gsub(/[[:space:]]{2,}/," ",a[i]); print i,a[i] } }' file
-
r=$0- capturando cópia do registro -
sub($1,"",r)- removendo o primeiro campo da cópia para armazenar os campos restantes na variávelr -
a[$1]=(a[$1])? a[$1]"\t"r : r- acumulando valores para o mesmo grupo (apresentado pelo 1º campo) -
for(i in a)- iterando por todos os itens agrupados -
gsub(/[[:space:]]{2,}/," ",a[i])- removendo espaços em branco excessivos entre palavras -
print i,a[i]- imprima o nome do grupo e seus valores
A saída:
DAPPUDRAFT_194440 Phosphorous Temperature
DAPPUDRAFT_196694 Salinity
DAPPUDRAFT_194512 Fishkairomones Cadmium Zinc Quantumdots
DAPPUDRAFT_194472 Phosphorous Fishkairomones Temperature
DAPPUDRAFT_196131 Salinity Phosphorous hypoxia
DAPPUDRAFT_195644 Salinity Phosphorous