Ответы:
DareDevil команд Unix, dd
на помощь!
dd if=yourfile ibs=1 skip=200 count=100
Это будет начинаться с байта 200 и показывать 100 следующих байтов, или, другими словами, байты 200-300. ibs
означает, что dd читает только один байт за раз вместо 512 байтов по умолчанию, но все еще записывает в 512 байтовых блоках по умолчанию. Пойди и посмотри, ibs
повредит ли это представление, надеюсь, нет.
Вы можете использовать dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
(возможно, bs=1
чтобы получить однобайтовые блоки, в противном случае он использует блоки по 512 байт). Не уверен, насколько эффективно сказать ему записывать по одному байту за раз.
dd
«s может быть труба приковано вместе (первый может разрезать толстый кусок и второй будет делать хорошую работу над трубой, а не диск), но dd
имеет не только , bs
но отдельно ibs
и obs
как хорошо, так что в по крайней мере, это может привести к большим блокам, чем чтение
Предполагая, что файл не слишком велик (например, несколько ГБ или около того), конвейерная передача от одного к другому настолько эффективна, насколько это возможно, если не писать собственную программу для этого.
head ... file | tail ...
(Или наоборот. В зависимости от того.)
time dd if=file.txt | wc -l
= 00: 00: 03s.time dd if=file.txt ibs=1 count=782090815 | wc -l
= 9:05:19