Help with duplicate common data content

Input file:

#data_131 0 >content..._* 1 >content..._at_+/97.20%     
#data_137 0 >content..._* 1 >content..._at_+/97.20% 2 >seq..._* 3 >content..._at_+/97.20% 4 >content..._at_+/97.20%
#data_141 0 >content..._*       
#data_150 0 >content..._* 1 >content..._at_+/97.20% 2 >seq..._* 3 >content..._at_+/97.20%

Desired output:

#data_131 0 >content..._* 
#data_131 1 >content..._at_+/97.20%     
#data_137 0 >content..._* 
#data_137 1 >content..._at_+/97.20% 
#data_137 2 >seq..._* 
#data_137 3 >content..._at_+/97.20% 
#data_137 4 >content..._at_+/97.20%
#data_141 0 >content..._*       
#data_150 0 >content..._*
#data_150 1 >content..._at_+/97.20%
#data_150 2 >seq..._*
#data_150 3 >content..._at_+/97.20%

Start from column 2, 2 column of data will form 1 group, eg. column 2 and 3 of each line is one group of data, column 3 and 4 of each line is another one group of data. All of them share the common data which is column 1.
Thus I plan to duplicate the column 1 content for every set of group.

Assuming lines are always this "good" (column 1 followed by at least 1 group of 2 columns):

awk '{for(i=2;i<=(NF-1);i+=2) print $1,$i,$(i+1)}' file
1 Like

Try something like this..

awk '{for(i=1;i<=NF;i++) {if ( $i ~ /^>/ ) { print $1,$(i-1), $i} }}' file
1 Like
awk -F">" '{for(i=1;i<=NF;i++){split($i,b," ");if(i==1){x=b[1];y=b[2];continue}; print x" "y" "FS b[1];y=b[2]}}' filename
1 Like