Jawaban:
The DareDevil dari perintah Unix, dd
untuk menyelamatkan!
dd if=yourfile ibs=1 skip=200 count=100
Itu akan mulai dari byte 200 dan menampilkan 100 byte berikutnya, atau dengan kata lain, byte 200-300. ibs
berarti dd hanya membaca satu byte pada suatu waktu alih-alih 512 byte default, tetapi masih menulis dalam potongan 512 byte default. Pergi dan lihat apakah ibs
merusak kinerja, saya harap tidak.
Anda dapat menggunakan dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
(mungkin dengan bs=1
untuk mendapatkan blok satu byte, jika tidak menggunakan blok 512 byte). Tidak yakin seberapa efisien untuk mengatakannya untuk menulis satu byte pada suatu waktu.
dd
's dapat pipa-dirantai bersama-sama (1 mungkin memotong sepotong lemak dan ke-2 akan melakukan pekerjaan baik atas pipa, tidak disk), tetapi dd
tidak hanya bs
tetapi terpisah ibs
dan obs
juga, jadi pada Setidaknya itu bisa dihasilkan dengan blok yang lebih besar daripada membaca.
Dengan asumsi file tersebut tidak terlalu besar (misalnya beberapa GB atau lebih), pipa dari satu ke yang berikutnya seefisien yang Anda dapatkan, singkat menulis program Anda sendiri untuk melakukannya.
head ... file | tail ...
(Atau sebaliknya. Mana pun.)
time dd if=file.txt | wc -l
= 00: 00: 03s.time dd if=file.txt ibs=1 count=782090815 | wc -l
= 9:05:19