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"; } } }