Quiero ubicar una fecha que está en algún lugar de un registro de 8 GB (texto).
¿Puedo omitir de alguna manera una lectura secuencial completa y primero hacer divisiones binarias del archivo (tamaño) o navegar de alguna manera por el sistema de archivos inodes
? (que conozco muy poco sobre), para comenzar a leer desde cada punto de división, hasta que encuentre un desplazamiento adecuado desde donde comenzar mi búsqueda de texto para una línea que contenga la fecha?
tail
La lectura de la última línea no usa una lectura secuencial normal, por lo que me pregunto si esta función está disponible de alguna manera en bash, o si necesitaría usar Python o C/C++... pero estoy específicamente interesado en un bash
opción..
Respuesta aceptada:
for (( block = 0; block < 16; block += 1 ))
do
echo $block;
dd if=INPUTFILE skip=$((block*512))MB bs=64 count=1 status=noxfer 2> /dev/null |
head -n 1
done
que... no crea archivos de división temporal, omite bloques * 512 MB de datos en cada ejecución, lee 64 bytes desde esa posición y limita la salida a la primera línea de esos 64 bytes.
es posible que desee ajustar 64 a lo que crea que necesita.