23 votos

Comando de Linux para recuperar un rango de byte de un archivo

Lo sé `` y puedo tomar la opción de especificar un desplazamiento de ```` bytes. Estoy buscando una manera de extraer eficientemente un rango de byte de un archivo de registro grande.

29voto

Janne Pikkarainen Puntos 22249

El DareDevil de los comandos Unix, `` al rescate!

Eso comenzaría a partir del byte 200 y mostraría 100 bytes siguientes, o en otras palabras, bytes 200-300. significa que dd solo lee un byte a la vez en lugar de los 512 bytes predeterminados, pero todavía escribe en fragmentos de 512 bytes predeterminados. Ve a ver si daña el rendimiento, espero que no.

14voto

Sirch Puntos 2763

Si su interés está en los bytes, sería `` de más interés.

Así que para leer los 16 bytes a partir del byte 1024, y la salida en ascii

4voto

DerfK Puntos 13616

Puede utilizar (posiblemente con para obtener bloques de un byte, de lo contrario utiliza bloques de 512 byte). Sin embargo, no estoy seguro de lo eficiente que es decirle que escriba un byte a la vez.

1voto

Suponiendo que el archivo no sea excesivamente grande (por ejemplo, varios GB más o menos), tuberías de uno a otro es tan eficiente como usted obtendrá, a falta de escribir su propio programa para hacerlo.

(O al revés. Lo que sea.)

1voto

jeffpkamp Puntos 111

Sé que esto es viejo, y pidió un comando "linux" en el título, pero python es perfecto para esto y viene con la mayoría de las distribuciones linux. Es tan fácil como esto:

``

va n bytes desde el inicio del programa y lee el número de bytes que desea.

No he encontrado otras opciones que lo hagan tan fácil.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: