Ответы:
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