#!/usr/bin/env ruby #------------------------------------------------------------------------------ # moves short log files into output_dir # call: # move_short_logs -d directory -o output_dir # example: # -------- # move_short_logs -d ./ -o .duplicates #------------------------------------------------------------------------------ require 'find' require 'fileutils' require 'getoptlong' def usage puts "usage: move_short_logs [-v] -d dirname -o output_dir" exit(-1) end usage if ARGV.length < 0 opts = GetoptLong.new( [ "--directory" , "-d", GetoptLong::REQUIRED_ARGUMENT ], [ "--output" , "-o", GetoptLong::REQUIRED_ARGUMENT ], [ "--verbose" , "-v", GetoptLong::NO_ARGUMENT ] ) $directory="./" $output_dir = ""; $verbose=0; #----------------------------- process the parsed options opts.each do |opt, arg| if (opt == "--directory" ) ; $directory = arg elsif (opt == "--output" ) ; $output_dir = arg elsif (opt == "--verbose" ) ; $verbose = 1 end if ($verbose != 0) ; puts "Option: #{opt}, arg #{arg.inspect}" ; end end puts $directory #----------------------------------------------------------------------- if (! FileTest.exists?($output_dir)) ; Dir.mkdir($output_dir); end list = Dir.entries($directory); list.each { |file| fn = file.split("/").last; # puts "#{fn} " size = File.size(fn) ; if (size < 10000) puts "size=#{size} , mv #{fn} #{$output_dir}" if ($output_dir != "") ; rc = `mv #{fn} #{$output_dir}/.` ; end end }