メモリに収まらない大規模なファイルを操作する必要があります。または、収まる場合でも、ファイルの特定の部分を検索して変更するだけでよいため、すべてをメモリに収める必要はありません。
これを行うための最良の方法は何ですか?
メモリに収まらない大規模なファイルを操作する必要があります。または、収まる場合でも、ファイルの特定の部分を検索して変更するだけでよいため、すべてをメモリに収める必要はありません。
これを行うための最良の方法は何ですか?
これは、ある種の大きなファイルの真ん中を、メモリにまったく読み込まずに微調整する例です。ただし、少しだけ読みたい場合は、IO.sysreadを参照してください。
TestFile = '/tmp/test'
system "cp /usr/share/dict/words #{TestFile}; chmod +w #{TestFile}"
File.open TestFile, 'r+' do |io|
io.sysseek 1000000
io.syswrite 'EASTER EGG!!!'
end
system "grep EASTER.EGG #{TestFile}"
sysreadとsyswriteは、いくつかの状況で役立ちます。