#!/opt/gnu/bin/perl -w
# Splitit: split columnized variable lists such as SAS input or
# SPSS data list statements (puts each field on a separate line)
# Assumes all variable names begin with a letter! Adjust the
# the pattern match in the split statement if desired.
# Kent Nassen, 4/22/97 & 8/15/97
# Sample input:
# V1 1-4 V2 5-8 V3 9-9
# V4 10-13 (A) V5 14-14 V6 15-16
# V7 17-17 V8 18-19 V9 20-21
# Sample output:
# V1 1-4
# V2 5-8
# V3 9-9
# V4 10-13 (A)
# V5 14-14
# V6 15-16
# V7 17-17
# V8 18-19
# V9 20-21
$i=0;
while (<>) {
chop;
for ($_) { s/^\s+//; s/$/ /; s/\n//g; }
@fields = split /([A-Za-z][A-Za-z0-9_]* )/, $_;
for ($i=1; $i<=$#fields; $i=$i+2) {
print " ",${fields}[$i],${fields}[$i+1],"\n";
}
}
Back to Kent's Perl Page