in reply to Editing text file
G'day freekngeek,
I think this is probably the algorithm you're after but see notes at the end.
#!/usr/bin/env perl use strict; use warnings; my $in_plus_lines = 0; while (<DATA>) { chomp; if (/^\+(.*)$/) { print "\n" unless $in_plus_lines; $in_plus_lines = 1; print $1; } else { $in_plus_lines = 0; print "\n" if $. > 1; print "$_"; } } print "\n"; __DATA__ * asterisk_line_1 * .dot_line + plus_line_1 + plus_line_2 * asterisk_line_3 + plus_line_3 + plus_line_4 * asterisk_line_4 + plus_line_5 + plus_line_6 plain_text_line_1 + plus_line_7 plain_text_line_2 + plus_line_8 * *asterisk_line_6 *asterisk_line_7 plain_text_line_3
Output:
$ pm_cat_plus_lines.pl * asterisk_line_1 * .dot_line plus_line_1 plus_line_2 * asterisk_line_3 plus_line_3 plus_line_4 * asterisk_line_4 plus_line_5 plus_line_6 plain_text_line_1 plus_line_7 plain_text_line_2 plus_line_8 * *asterisk_line_6 *asterisk_line_7 plain_text_line_3
Notes:
As you can see, I've used completely different input; hopefully, the output is easier to read. Given the points above, my algorithm may be incorrect: there may be enough for you to correct it for your needs; if not, please address those points before asking follow-up questions.
-- Ken
|
|---|