Ich habe pdgrep etwas erweitert. Neue Optionen:
-i fuer case insensitive search
-p damit wird less gestartet, mit :n und :p kann man zwischen den Ergebnisseiten blättern.
Die Suchverzeichnisse sind jetzt nicht mehr hart kodiert.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl -w
# pdgrep
use strict;
use Getopt::Long;
my %opt;
GetOptions(\%opt, "i!", "p!") or die "usage!";
my @inc = sort { length $a <=> length $b } grep { $_ ne "." } @INC;
for(my $i=$#inc; $i>=0; $i--) {
for(my $j=0; $j<$i; $j++) {
if (index($inc[$i], "$inc[$j]/") == 0) {
splice @inc, $i, 1;
last;
}
}
}
my @find_cmd = ("find", @inc, "-name", "*.pod", "-exec",
"grep", ($opt{i} ? "-i" : ()));
if ($opt{p}) {
push @find_cmd, "-l";
} else {
push @find_cmd, "-A3", "-B3", "-H";
}
push @find_cmd, $ARGV[0], "{}", ";";
if ($opt{p}) {
open(my $FIND, "-|", @find_cmd);
local $/ = undef;
my $pods = <$FIND>;
close $FIND;
exec("less", "-p*$ARGV[0]", split(/\n/, $pods));
} else {
exec(@find_cmd);
}
\n\n
<!--EDIT|renee|1110364540-->