GNU/Linux >> Tutoriales Linux >  >> Linux

Grep en un archivo de registro enorme (> 14 GB) ¿solo los últimos x GB?

Solución 1:

Supongo que podría usar la cola para generar solo los últimos 4 GB más o menos usando el -c cambiar

-c, --bytes=[+]NUM
generar los últimos NUM bytes; o use -c +NUM para generar una salida que comience con el byte NUM de cada archivo

Probablemente podrías hacer algo con dd también configurando bs=1 y skip yendo al desplazamiento que desea comenzar, por ejemplo,

dd if=file bs=1024k skip=12g | grep something

Solución 2:

Estoy publicando esto porque algunos de los comentarios lo solicitaron.

Lo que terminé usando fue (archivo de 15 GB). Funcionó muy rápido y me ahorró mucho tiempo.

tail -f -c 14G file | grep something

También hice un punto de referencia muy rudimentario en el mismo archivo. Probé:

archivo grep xxx
// tomó una eternidad (> 5 minutos)

dd if=archivo bs=1 skip=14G | grep xxx
// muy rápido <1 segundo

cola -c 14g | grep xxx
// bastante rápido <2 segundos

el tail es un poco más corto.

Nota: el sufijo usado g y G difieren por comando (Ubuntu 15.10)

Solución 3:

Esto no responde a la pregunta del título, pero hará lo que desea hacer. Use tac para invertir el archivo, luego use grep para encontrar su cadena. Si su cadena solo aparece una vez o un número conocido de veces en el archivo, deje que se ejecute hasta que encuentre el número conocido de apariciones. De esa forma, si su suposición acerca de dónde está en el archivo es incorrecta, igual lo encontrará. Si desea limitarlo, puede usar la cabeza para hacerlo. El comando principal iría entre tac y grep.

Entonces el comando se ve así:

tac < logfile | grep myString

Linux
  1. ¿Encontrar solo la primera aparición usando solo Grep?

  2. Imprimir la última línea de un archivo, desde la CLI

  3. Cómo obtener solo el número de líneas de un archivo

  4. Cómo grep \n en el archivo

  5. ¿Cómo hacer que ssh inicie sesión como el usuario correcto?

Zsync:una utilidad de transferencia de archivos para descargar solo las partes nuevas de un archivo

El tutorial de comando Grep con ejemplos para principiantes

¿Eliminar la coma entre comillas solo en un archivo delimitado por comas?

¿Cómo contar el número de líneas en un archivo después de una coincidencia Grep?

¿Cómo filtrar el registro de Dmesg para ver solo los errores?

Las 15 mejores herramientas de administración de archivos y visor de registros de Linux