module FileUtils
Public Class Methods
tail(file_name, lines = 10, sep = $/)
click to toggle source
def self.tail(file_name, lines = 10, sep = $/) file = File.open(file_name, 'r') string = "" pos = -1 n = 0 size = file.stat.size
# return string if size == 0
while size > 0 file.sysseek(pos, IO::SEEK_END) char = file.sysread(1) n+= 1 if char == sep break if n == lines + 1 string = char + string break if pos == - size pos -= 1 end file.close return string end
# File lib/rubyhacks.rb, line 824 def self.tail(file_name, lines = 10, sep = $/) if lines > 49 and sep == "\n" # The command line utility will be much faster begin return `tail -n #{lines} #{file_name}` rescue => err #in case the command tail can't be found # puts err end end file = File.open(file_name, 'r') string = "" pos = -1 n = 0 size = file.stat.size while size > 0 file.sysseek(size + pos) char = file.sysread(1) n+= 1 if char == sep and not pos == -1 break if n == lines string = char + string break if pos == - size pos -= 1 end file.close return string end