Tengo un archivo de registro de 70G +, y me gustaría que las entradas más recientes (el registro de apache agregue nuevos elementos al final) que coincidan con un patrón. Yo puedo:
run grep | tail
o
run tail | grep
Opción 1 tomará para siempre. La opción 2 puede no devolver nada, entonces tendré que aumentar el conteo de la cola y seguir corriendo hasta que obtenga algo.
Si pudiera grep desde la última línea hasta la primera, sería ideal. Pero no pude encontrar ninguna opción en la página man de grep.
¿Hay algún truco para hacer eso? ¿Ya sea en grep solo o con cualquier otra combinación de herramientas de linux?
linux
command-line
bash
grep
gcb
fuente
fuente
Respuestas:
Creo que el comando que mejor te ayudará es tac: http://linux.die.net/man/1/tac
Como dice:
tac - concatenar e imprimir archivos a la inversa
Así que puedes canalizarlo a grep y hacer coincidir un número nnn de líneas antes de detenerte, o algo así.
fuente
Eso es un archivo grande. Debes rotar esos registros más a menudo.
Si
tac
es demasiado lento, puede elegir un lenguaje de programación con unaseek
comando (perl, por ejemplo), entonces:fuente