From 2b1d7f881c19c4d4b5afae194e02d3300c7675d0 Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Tue, 5 Jul 2016 11:01:46 +0200 Subject: mv --- min-max | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 min-max (limited to 'min-max') diff --git a/min-max b/min-max new file mode 100755 index 0000000..1dbfd40 --- /dev/null +++ b/min-max @@ -0,0 +1,40 @@ +#!/usr/bin/ruby + +require 'zipf' +require 'trollop' + +conf = Trollop::options do + opt :min, "minimum #tokens", :type => :int, :default => 1 + opt :max, "maximum #tokens", :type => :int, :default => 80, :short => '-n' + opt :in_f, "input 'French' file", :type => :string, :required => true + opt :in_e, "input 'English' file", :type => :string, :required => true + opt :out_f, "output 'French' file", :type => :string, :required => true + opt :out_e, "output 'English' file", :type => :string, :required => true + opt :out_id, "output line Nos", :type => :string, :required => true +end + + +files = {} +files[:f_file] = ReadFile.new conf[:in_f] +files[:e_file] = ReadFile.new conf[:in_e] +files[:f_out_file] = WriteFile.new conf[:out_f] +files[:e_out_file] = WriteFile.new conf[:out_e] +files[:id_out_file] = WriteFile.new conf[:out_id] +i = 0 +while f_line = files[:f_file].gets + e_line = files[:e_file].gets + f_line.strip! + e_line.strip! + a = f_line.split + b = e_line.split + if a.size >= conf[:min] and a.size <= conf[:max] and \ + b.size >= conf[:min] and b.size <= conf[:max] + files[:f_out_file].write "#{f_line}\n" + files[:e_out_file].write "#{e_line}\n" + files[:id_out_file].write "#{i}\n" + end + i+=1 +end + +files.values.each{ |f| f.close } + -- cgit v1.2.3