![Exiqgrep ohne Berücksichtigung der Groß-/Kleinschreibung?](https://rvso.com/image/617273/Exiqgrep%20ohne%20Ber%C3%BCcksichtigung%20der%20Gro%C3%9F-%2FKleinschreibung%3F.png)
Meine Mail-Warteschlange ist derzeit voller Bounce-Nachrichten für dieselbe Domäne, allerdings in gemischter Groß- und Kleinschreibung.
Ich habe versucht, exiqgrep
diese E-Mails aus meiner Warteschlange zu filtern, aber der Befehl scheint zwischen Groß- und Kleinschreibung zu unterscheiden.Gibt es eine Möglichkeit, eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen?
Antwort1
Wie der andere Herr bereits sagte, ist das Programm exiqgrep nur ein Perl-Skript. Es nimmt den an die Funktion -r (Empfänger) übergebenen Rohwert und verwendet ihn für einen Mustervergleich. Der Mustervergleich ist ein einfacher $rcpt =~ /$opt{r}/
Perl-Test, der Standardvergleich ist, da er nicht angegeben ist, case-sensitiv.
Wie bei allen Dingen in Perl gilt TIMTOWTDI (There Is More Than One Way To Do It). Da die obige Funktion den an -r übergebenen Wert nicht entfernt oder bereinigt, können Sie einfach einen Modifikator zum Ignorieren der Groß-/Kleinschreibung in den regulären Ausdruck einbetten. perldoc perlre
Weitere Einzelheiten zur Funktionsweise der (?MODIFIERS:...)
Sequenz finden Sie unter.
Hier ist ein Beispiel, in dem ich zeige, dass eine Suche mit gemischter Groß- und Kleinschreibung die gesuchte Domäne nicht findet, sie aber durch die Verwendung eines Inline-Flag-Modifikators als Teil des Suchbegriffs gefunden wird.
OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r '[email protected]'
26h 4.0K 1VGRud-0001sm-P1 <> *** frozen ***
[email protected]
OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r '[email protected]'
OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r '(?i:[email protected])'
26h 4.0K 1VGRud-0001sm-P1 <> *** frozen ***
[email protected]
Ihre Suche wird ähnlich sein, etwa so:
(?i:@thedomainyouseek.com)
Antwort2
Dermanpagezeigt diese Option nicht an, aber das exiqgrep
Dienstprogramm ist ein perl
Skript, dessen Quelle SiePassen Sie es Ihren Bedürfnissen an:
114 sub selection() {
115 foreach my $msg (keys(%id)) {
116 if ($opt{f}) {
117 # Match sender address
118 next unless ($id{$msg}{from} =~ /$opt{f}/); # here
119 }
120 if ($opt{r}) {
121 # Match any recipient address
122 my $match = 0;
123 foreach my $rcpt (@{$id{$msg}{rcpt}}) {
124 $match++ if ($rcpt =~ /$opt{r}/); # or here
125 }
126 next unless ($match);
127 }
128 if ($opt{s}) {
129 # Match against the size string.
130 next unless ($id{$msg}{size} =~ /$opt{s}/);
131 }
132 if ($opt{y}) {
133 # Match younger than
134 next unless ($id{$msg}{ages} $opt{o});
139 }
140 if ($opt{z}) {
141 # Exclude non frozen
142 next unless ($id{$msg}{frozen});
143 }
144 if ($opt{x}) {
145 # Exclude frozen
146 next if ($id{$msg}{frozen});
147 }
148 # Here's what we do to select the record.
149 # Should only get this far if the message passed all of
150 # the active tests.
151 $id{$msg}{d} = 1;
152 # Increment match counter.
153 $mcount++;
154 }
155 }