Linux per recuperare un range di byte da un file

So che la head e la tail possono assumere l'opzione -c per specificare un offset di byte. Sto cercando un modo per estrarre in modo efficiente una gamma di byte da un grande file di registro.

  • Come liberare il swap senza riavvio (per evitare messaggi di posta elettronica orarie)?
  • Trovare tutti gli indirizzi IP attualmente utilizzati del sito
  • Come mantenere un file su molti server di produzione (Windows e Linux)
  • Alta utilizzo della CPU di process a filo
  • sshd si chiude con l'errore "No algoritmi di scambio di chiavi supportti"
  • Come determinare la dimensione del byte migliore per il command dd
  • 4 Solutions collect form web for “Linux per recuperare un range di byte da un file”

    Il DareDevil dei comandi Unix, dd per il salvataggio!

     dd if=yourfile ibs=1 skip=200 count=100 

    Questo inizia dal byte 200 e mostrerà 100 byte successivi, in altre parole, byte 200-300. ibs significa che gg legge solo un byte alla volta anziché i 512 byte predefiniti, ma scrive ancora in blocchi predefiniti di 512 byte. Vai e vedi se ibs danneggia la prestazione, non spero.

    È ansible utilizzare dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks (forse con bs=1 per get blocchi di un byte, altrimenti utilizza blocchi di 512 byte). Non so quanto sia efficace dirlo a scrivere un byte alla volta, però.

    Se il tuo interesse è nei byte, sarebbe di più interesse.

     -j, --skip-bytes=bytes -N, --read-bytes=bytes 

    Quindi, per leggere i 16 byte che partono dal byte 1024, ed output in ascii

     od -j 1024 -N 16 -a /bin/sh 

    Supponendo che il file non sia eccessivamente grande (ad esempio più GB o così), la conduttura da una a quella successiva è più efficiente di quanto si otterrà, a less che non scrivi il proprio programma per farlo.

     head ... file | tail ... 

    (O viceversa, qualunque cosa.)

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.