rubyでファイル中の文字列を書き換える方法
やりたかったこと
以下のようなファイルを
abc.txt
<aaa></aaa> <bbb></bbb> <ccc></ccc> <ddd></ddd>
以下のようなファイルへ書き換える
abc.txt
<aaa></aaa> <bbb></bbb> <ccc>hogehogehoge</ccc> <ddd></ddd>
コード
#!/usr/bin/ruby open("abc.txt","r+") {|f| f.flock(File::LOCK_EX) body = f.read body = body.gsub(/(^<bbb>).*(<\/bbb>$)/) do |tmp| "#{$1}hogehogehoge#{$2}" end f.rewind f.puts body f.truncate(f.tell) }
今のところ、疑問
f.truncate(f.tell)
これが何を意図しているのか、良く分かってない。