#!/usr/bin/ruby -w # Remove leading or trailing lines. # # argument >= 0 -> drop leading lines. # argument < 0 -> drop trailing lines. if ARGV.size == 0 print "#{$0} {line_count}\n" exit 1 end count = ARGV.shift.to_i if count >= 0 ARGF.each_line.drop(count).each{print it} else buffer = [] ARGF.each_line{ buffer += [it] if buffer.size > -count print buffer.shift end } end