File: randlines.rb

package info (click to toggle)
genometools 1.6.1%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 50,412 kB
  • sloc: ansic: 271,241; ruby: 30,339; python: 4,880; sh: 3,193; makefile: 1,194; perl: 219; pascal: 159; haskell: 37; sed: 5
file content (21 lines) | stat: -rwxr-xr-x 397 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env ruby

# output a number of random lines

if ARGV.length != 2
  STDOUT.puts "#{$0}: <key_file> <numofkeys>"
  exit 1
end

numofkeys = ARGV[1].to_i
lines = File.open(ARGV[0],"r").readlines
numoflines = lines.length
alreadyseen = {}

0.upto(numofkeys - 1) do |i|
  rnum = rand(numoflines)
  if not alreadyseen.has_key?(rnum)
    puts lines[rnum]
    alreadyseen[rnum] = true
  end
end