解決策 1:
Unix コマンドのデアデビル、dd
dd if=yourfile ibs=1 skip=200 count=100
これはバイト 200 から始まり、次の 100 バイト、つまりバイト 200 ~ 300 を示します。 ibs
dd は、デフォルトの 512 バイトではなく、一度に 1 バイトのみを読み取りますが、それでもデフォルトの 512 バイトのチャンクで書き出すことを意味します。 ibs
かどうか見てみましょう パフォーマンスに悪影響を与えません。
解決策 2:
あなたの興味がバイトにあるなら、od
-j, --skip-bytes=bytes
-N, --read-bytes=bytes
したがって、バイト 1024 から始まる 16 バイトを読み取り、ASCII で出力するには
od -j 1024 -N 16 -a /bin/sh
解決策 3:
dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
を使用できます (おそらく bs=1
で それ以外の場合は 512 バイト ブロックを使用します)。ただし、一度に 1 バイトずつ書き込むように指示することがどれほど効率的かはわかりません。