#! /usr/bin/env ruby # # sample - Pick random N lines from a file. # num = 10 if !ARGV.empty? && ARGV[0] =~ /^-(\d+)/ num = $1.to_i ARGV.shift; end selected = [] lineno = 1 while line = gets rand = rand(lineno) if rand < num selected.push(line) if selected.length > num selected.delete_at(rand) end end lineno += 1 end puts selected