Respuestas:
¡El DareDevil de los comandos de Unix, ddal 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. ibssignifica 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 ibsperjudica el rendimiento, espero que no.
Puede usar dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks(posiblemente con bs=1para 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 ddtiene no sólo bspero separado ibsy 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