Rearrange Lines with awk

I need to rearrange the lines in the input file in the example below:

Input:

LG1 R500 A-170 F1:81 F1:22 F2:32 F1:71
LG1 R700 A-203 F2:17 E2:18
LG1 R700 B-224 E1:9
LG2 R500 C-235 E2:9 F2:17

Output:

LG1 R500 A-170 F1:81
LG1 R500 A-170 F1:22
LG1 R500 A-170 F2:32
LG1 R500 A-170 F1:71
LG1 R700 A-203 F2:17
LG1 R700 A-203 E2:18
LG1 R700 B-224 E1:9
LG2 R500 C-235 E2:9
LG2 R500 C-235 F2:17
awk '{ 
  for (i = 3; ++i <= NF;)
    print $1, $2, $3, $i
  }' infile    
1 Like

if you have Ruby

# ruby -F"\s+" -ane '$F[3..-1].each{|x| puts $F[0..2].join(" ") + " " + x }' file
LG1 R500 A-170 F1:81
LG1 R500 A-170 F1:22
LG1 R500 A-170 F2:32
LG1 R500 A-170 F1:71
LG1 R700 A-203 F2:17
LG1 R700 A-203 E2:18
LG1 R700 B-224 E1:9
LG2 R500 C-235 E2:9
LG2 R500 C-235 F2:17

1 Like