Estoy tratando de ver un archivo de registro usando tail -f
y quiero excluir todas las líneas que contienen las siguientes cadenas:
"Nopaging the limit is"` and `"keyword to remove is"
Puedo excluir una cadena como esta:
tail -f admin.log|grep -v "Nopaging the limit is"
Pero, ¿cómo excluyo las líneas que contienen string1
o string2
.
grep -v -e def -e jkl
método, que en mi humilde opinión es más claro…grep -Fv -e def -e jkl
que es aún más rápido!grep -vF $(pgrep myprocess)
-F
coincide con cadenas literales (en lugar de regex)-v
invierte el partido-e
permite múltiples patrones de búsqueda (todos literales e invertidos)fuente
grep -v
instancias múltiples como el requisito artificial de una expresión regular (permite que las cadenas múltiples se especifiquen limpiamente en argumentos separados). Imagínense construir esa expresión regular mediante programación en un script para cadenas que podrían contener cualquier cosa ...Otra opción es crear una lista de exclusión, esto es particularmente útil cuando tiene una lista larga de cosas para excluir.
Ahora agregue lo que le gustaría excluir
Ahora use grep para eliminar líneas de su archivo de registro de archivos y ver la información no excluida.
fuente
-v
con-f
(o que este último incluso existía).grep -v -f <(gen_exclusions.sh) /var/log/admin.log
fuente
fuente
Puede usar grep regular como este:
tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"
fuente
Los greps se pueden encadenar. Por ejemplo:
fuente