summaryrefslogtreecommitdiff
path: root/min-max
diff options
context:
space:
mode:
Diffstat (limited to 'min-max')
-rwxr-xr-xmin-max40
1 files changed, 40 insertions, 0 deletions
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 }
+