[OT] regular expressions

Apollon Koutlidis apollon at planewalk.net
Sat Jun 21 12:56:37 EEST 2008


Harris Kosmidhs wrote:
> Καλημέρα,
>
> λίγο off-topic,
don't feed the idlers...
>
> έχω περίπου 20-30 text αρχεία με στίχους της μορφής:
>
> μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα
> μπλα μπλα
>
> [κενές γραμμές 1 ή πολλές]
>
> μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα μπλα μπλα
> μπλα μπλα μπλα μπλα
>
> Θα ήθελα με sed, perl η ότι άλλο να μετατραπεί σε κάτι του στυλ:
>
> <p>
> μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα<br>
> μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα <br>
> μπλα μπλα μπλα μπλα μπλα μπλα <br>
> μπλα μπλα μπλα μπλα μπλα μπλα <br>
> μπλα μπλα μπλα μπλα <br>
> μπλα μπλα <br>
> </p>
> [1 κενή γραμμή]
> <p>
> μπλα μπλα <br>
> μπλα μπλα μπλα μπλα μπλα μπλα<br>
> μπλα μπλα μπλα μπλα μπλα μπλα <br>
> μπλα μπλα μπλα μπλα μπλα μπλα <br>
> μπλα μπλα μπλα μπλα<br>
> </p>
>
apollon at apollon-lap:~/koko$ cat filter.pl
#!/usr/bin/perl -w

my $blankLine=1;    # Start with a new paragraph

while (<>) {
  if ( /^\s*$/ ) {    # Match an empty line with maybe some spaces
    if (!$blankLine) {    #   got a first empty line
      $blankLine = 1;
      print "</p>\n\n";
    }
  } else {
    if ( $blankLine ) {    # End of blank lines' range
      print "<p>\n";
      $blankLine=0;
    }
    chomp;        # Regular content,
    print $_."<br>\n";    #   add an HTML linebreak
  }
}
apollon at apollon-lap:~/koko$  cat lala | ./filter.pl
<p>
μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα<br>
μπλα μπλα<br>
</p>

<p>
μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα μπλα μπλα<br>
μπλα μπλα μπλα μπλα <br>
</p>

[etc.]





More information about the Linux-greek-users mailing list