Risposte:
Il DareDevil dei comandi Unix, dd
in soccorso!
dd if=yourfile ibs=1 skip=200 count=100
Ciò inizierebbe dal byte 200 e mostrerebbe 100 byte successivi o, in altre parole, byte 200-300. ibs
significa che dd legge solo un byte alla volta anziché i 512 byte predefiniti, ma scrive ancora in blocchi predefiniti da 512 byte. Vai a vedere se ibs
danneggia la performance, spero di no.
Puoi usare dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
(possibilmente con bs=1
per ottenere blocchi da un byte, altrimenti usa blocchi da 512 byte). Non sono sicuro di quanto sia efficace dirgli di scrivere un byte alla volta, però.
dd
possono essere incatenati insieme (il 1 ° potrebbe tagliare il pezzo grasso e il 2 farebbe un buon lavoro sul tubo, non sul disco), ma dd
non ha solo bs
ma separato ibs
e obs
pure, quindi a almeno potrebbe essere emesso con blocchi più grandi della lettura.
Supponendo che il file non sia eccessivamente grande (ad es. Diversi GB o giù di lì), il piping da uno all'altro è efficiente quanto si ottiene, a meno di scrivere il proprio programma per farlo.
head ... file | tail ...
(O viceversa. Qualunque sia.)
time dd if=file.txt | wc -l
= 00: 00: 03s.time dd if=file.txt ibs=1 count=782090815 | wc -l
= 9:05:19