1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#!/usr/bin/env ruby require 'zipf' a = ReadFile.readlines_strip ARGV[0] h = {} a.each { |i| h[i] = true } f = ARGV[1].to_f while line = STDIN.gets line.strip! s,weight = line.split weight = weight.to_f a,_,target = s.rpartition ":" _,_,source = a.split(":",3) if (h[source]) puts "#{s}\t#{weight*f}" else puts line end end