¿Exiqgrep que no distingue entre mayúsculas y minúsculas?

¿Exiqgrep que no distingue entre mayúsculas y minúsculas?

Mi cola de correo está actualmente llena de mensajes devueltos para el mismo dominio, pero en mayúsculas y minúsculas mixtas.

Intenté usar exiqgreppara filtrar estos correos de mi cola, pero parece que el comando distingue entre mayúsculas y minúsculas.¿Hay alguna forma de realizar una búsqueda que no distinga entre mayúsculas y minúsculas?

Respuesta1

Como señaló el otro caballero, el programa exiqgrep es sólo un script en Perl. Toma el valor sin procesar pasado a la función -r (destinatario) y lo utiliza en una coincidencia de patrón. La coincidencia de patrón es una $rcpt =~ /$opt{r}/prueba de Perl simple; la coincidencia predeterminada, dado que no está especificada, distingue entre mayúsculas y minúsculas.

Como ocurre con todo lo relacionado con Perl, TIMTOWTDI (Hay más de una forma de hacerlo). Dado que la función anterior no elimina ni desinfecta el valor pasado a -r, simplemente puede incrustar un modificador de ignorar mayúsculas y minúsculas en la expresión regular. Consulte perldoc perlrepara obtener más detalles sobre cómo (?MODIFIERS:...)funciona la secuencia.

Aquí hay un ejemplo donde muestro que una búsqueda mixta no encuentra el dominio que estoy buscando, pero al usar un modificador de bandera en línea como parte del término de búsqueda, lo encuentra.

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]

Su búsqueda será similar, algo como:

(?i:@thedomainyouseek.com)

Respuesta2

Elpágina de manualno muestra dicha opción, pero la exiqgreputilidad es un perlscript cuya fuente puedemodificar para adaptarlo a sus necesidades:


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 }

información relacionada