![Aplicar el filtrado de múltiples colas a muchos archivos pasados mediante comodín](https://rvso.com/image/164737/Aplicar%20el%20filtrado%20de%20m%C3%BAltiples%20colas%20a%20muchos%20archivos%20pasados%20%E2%80%8B%E2%80%8Bmediante%20comod%C3%ADn.png)
multitail
tiene un bonito mecanismo de filtrado basado en expresiones regulares que se describe en la página de manual y en el manual en línea. Ambas fuentes afirman que las líneas de registro que coinciden con una expresión regular determinada se pueden excluir de la salida mediante el -ev
modificador:
multitail -ev "ignorelinescontainingthis" /var/log/whatever.log -ev "alsoignorethis" /var/log/another.log
Sin embargo, esto no parece funcionar para filtrar muchos archivos de registro que se pasan mediante comodines:
multitail -ev "thisdoesntwork" /var/log/myservice*.log
¿Hay alguna manera de hacer que esto funcione?
Para fines de análisis, probé el -ec
interruptor (que resalta las coincidencias de expresiones regulares) y resulta que el filtro solo se aplica al primer archivo en la lista de comodines, pero a ninguno de los demás.
Respuesta1
Convirtiendo mi comentario en una respuesta.
La página de manual paramultitail
define la -e
opción de la siguiente manera:
-e
Utilice la siguiente expresión regular en lo siguientearchivo.
Por lo tanto, el filtro de expresión regular solo se aplica al archivo inmediatamente siguiente. Al utilizar globos de shell, esto daría como resultado que el filtro se aplicara solo al primer archivo de la lista expandida de archivos.
Para aplicar el filtro de expresión regular en todos los archivos, -E
se debe utilizar la opción:
-E
Utilice la siguiente expresión regular en lo siguientearchivos.
La -v
opción, que niega la expresión regular especificada, debería funcionar de la misma manera para cualquiera de estas opciones.