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