8 GBのログ(テキスト)のどこかにある日付を見つけたいのですが。
完全なシーケンシャル読み取りをいくらかバイパスして、最初にファイル(サイズ)のバイナリ分割を実行するか、ファイルシステムの iノード
をナビゲートすることはできますか? (私は非常に 少し)、各分割点から読み始め、日付を含む行のテキスト検索を開始する場所から適切なオフセットが見つかるまで?
テールコード> の最後の行の読み取りは通常の順次読み取りを使用しないので、この機能がbashで利用できるのか、それともPythonまたはC / C ++を使用する必要があるのか疑問に思います…しかし、私は特に
に興味があります。 bash
オプション..
承認された回答:
for (( block = 0; block < 16; block += 1 ))
do
echo $block;
dd if=INPUTFILE skip=$((block*512))MB bs=64 count=1 status=noxfer 2> /dev/null |
head -n 1
done
これは、一時分割ファイルを作成せず、実行ごとにブロック* 512MBのデータをスキップし、その位置から64バイトを読み取り、出力をその64バイトの最初の行に制限します。
64を必要と思われるものに調整することをお勧めします。