| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | #!/usr/bin/perl -wuse strict;my %count = ();my $more = 0;my $last = "";while (<>) {    if ($more) {        if (/LD_BUG/) {            $more = 0;            next;        }        if (/\"((?:[^\"\\]+|\\.*)+)\"(.*)/) {            $last .= $1;            if ($2 !~ /[,\)]/) {                $more = 1;            } else {                $count{lc $last}++;                $more = 0;            }        } elsif (/[,\)]/) {            $count{lc $last}++;            $more = 0;        } elsif ($more == 2) {            print "SKIPPED more\n";        }    } elsif (/log_(?:warn|err|notice)\(\s*(LD_[A-Z_]*)\s*,\s*\"((?:[^\"\\]+|\\.)*)\"(.*)/) {        next if ($1 eq 'LD_BUG');        my $s = $2;        if ($3 =~ /[,\)]/ ) {            $count{lc $s}++;        } else {            $more = 1;            $last = $s;        }    } elsif (/log_(?:warn|err|notice)\(\s*((?:LD_[A-Z_]*)?)(.*)/) {        next if ($1 eq 'LD_BUG');        my $extra = $2;        chomp $extra;        $last = "";        $more = 2 if ($extra eq '');    }}while ((my $phrase, my $count) = each %count) {    if ($count > 1) {        print "$count\t$phrase\n";    }}
 |