On Tue, 31 Oct 2006, Benjamin Franz wrote: > the following Perl script should do it. > > > #!/usr/bin/perl > > use strict; > use warnings; > > while (<ARGV>) { > chomp; > my @elements = split(/\s+/); > my $running_col1; > foreach my $item (@elements) { > if ($item =~ m/^[0-9]+$/) { > $running_col1 = $item; > } else { > print "$running_col1 $item\n"; > } > } > } > Here is a slightly revised version that would handle the case if a line break occured in the middle of a 'set'. IOW it would handle the case of 1 a b c d e 2 a a 3 e w a #!/usr/bin/perl use strict; use warnings; my $running_col1; while (<ARGV>) { chomp; my @elements = split(/\s+/); foreach my $item (@elements) { if ($item =~ m/^[0-9]+$/) { $running_col1 = $item; } else { print "$running_col1 $item\n"; } } } -- Jerry "It is moronic to predict without first establishing an error rate for a prediction and keeping track of one’s past record of accuracy." -- Nassim Nicholas Taleb, Fooled By Randomness