in reply to splitting the bus and print
Here's some code to get you going:
Still some questions to answer:c:\@Work\Perl\monks>perl -wMstrict -le "my $s = qq{[5:0]abc\n[0:5]def\nghi\njkl\n[22:22]mno\n[6:3]pqr\nstu\n} +; print qq{<<$s>> \n}; ;; $s =~ s{ (\[ \d+ : \d+ \]) ([[:lower:]]{3}) } { make_replacement($1, $2) }xmsge; print qq{<<$s>>}; ;; sub make_replacement { my ($range_field, $string) = @_; ;; my ($hi, $lo) = $range_field =~ m{ \d+ }xmsg; return qq{$range_field$string} if $hi < $lo; ;; return join qq{\n}, map qq{$string\[$_]}, $lo .. $hi ; } " <<[5:0]abc [0:5]def ghi jkl [22:22]mno [6:3]pqr stu >> <<abc[0] abc[1] abc[2] abc[3] abc[4] abc[5] [0:5]def ghi jkl mno[22] pqr[3] pqr[4] pqr[5] pqr[6] stu >>
Update: Added the '[6:3]pqr' instance.
Give a man a fish: <%-{-{-{-<
|
|---|