Exiqgrep insensible aux cas?

Ma queue de messagerie est actuellement pleine de messages de rebond pour le même domaine, mais en cas mixte.

J'ai essayé d'utiliser exiqgrep pour filterr ces mails de ma queue, mais il semble que la command soit sensible à la casse. Existe-t-il un moyen d'effectuer une search insensible aux cas?

2 Solutions collect form web for “Exiqgrep insensible aux cas?”

Comme l'a souligné l'autre monsieur, le programme exiqgrep est juste un script perl. Il prend la valeur brute passée à la fonction -r (destinataire) et l'utilise dans une correspondance de motif. La correspondance de motif est un simple $rcpt =~ /$opt{r}/ perl, la correspondance par défaut, car elle n'est pas spécifiée, est sensible à la casse.

Comme pour toutes les choses, Perl, TIMTOWTDI (il y a plus qu'une façon de le faire). Étant donné que la fonction ci-dessus ne détruit ou désinfecte la valeur passée à -r, vous pouvez simplement incorporer un modificateur de cas ignore dans le regex. Voir perldoc perlre pour plus de détails sur la façon dont la séquence (?MODIFIERS:...) fonctionne.

Voici un exemple où je montre qu'une search de cas mixte ne trouve pas le domaine que je search, mais en utilisant un modificateur de drapeau en ligne dans le cadre du terme de search, il le trouve.

 OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r 'crazyivan@yahoo.com' 26h 4.0K 1VGRud-0001sm-P1 <> *** frozen *** crazyivan@yahoo.com OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r 'crazYivAn@yahOo.com' OVZ-CentOS58[root@ivwm51 ~]# exiqgrep -r '(?i:crazYivAn@yahOo.com)' 26h 4.0K 1VGRud-0001sm-P1 <> *** frozen *** crazyivan@yahoo.com 

Votre search sera similaire, quelque chose comme:

 (?i:@thedomainyouseek.com) 

La page de manuel ne montre pas cette option, mais l'utilitaire exiqgrep est un script perl dont vous pouvez modifier la source pour répondre à vos besoins :

 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 ssortingng. 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 } 
Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.