Respuestas:
¡El DareDevil de los comandos de Unix, dd
al rescate!
dd if=yourfile ibs=1 skip=200 count=100
Eso comenzaría desde el byte 200 y mostraría 100 bytes siguientes, o en otras palabras, bytes 200-300. ibs
significa que dd solo lee un byte a la vez en lugar de los 512 bytes predeterminados, pero aún escribe en fragmentos de 512 bytes predeterminados. Ve a ver si ibs
perjudica el rendimiento, espero que no.
Puede usar dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
(posiblemente con bs=1
para obtener bloques de un byte, de lo contrario, usa bloques de 512 bytes). Sin embargo, no estoy seguro de cuán eficiente es decirle que escriba un byte a la vez.
dd
's pueden ser de tubo en cadena (el primero podría cortar el pedazo de grasa y la segunda haría buen trabajo sobre el tubo, no de disco), pero dd
tiene no sólo bs
pero separado ibs
y obs
, así, por lo que en menos podría salir con bloques más grandes que la lectura.
Suponiendo que el archivo no es excesivamente grande (por ejemplo, varios GB o más), la canalización de uno a otro es tan eficiente como sea posible, salvo escribir su propio programa para hacerlo.
head ... file | tail ...
(O al revés. Lo que sea.)
time dd if=file.txt | wc -l
= 00: 00: 03s.time dd if=file.txt ibs=1 count=782090815 | wc -l
= 9:05:19