mydircat.rb


workフォルダにいろいろためしがきのプログラムやテキストがあって、typeなりcatでひとつずつ中身をみるのがめんどうなときがあります。正規表現でファイル名がヒットしたものを一度に見たいときのプログラム(スクリプト)です。cat => mycat => mydircatという名前がmy dear catみたいで気に入ったので、ご紹介。
使い方はruby mydircat.rb 適当な文字列、とすると適当な文字列を正規表現と理解reg = Regexp.new(ARGV[0])して、カレントディレクトリの中からヒットしたファイルをmydir(reg)でいったんarrayに入れて、mydircat(ary)で巨大な文字列にして返します。
実際に使うときには > temp.txtとして、temp.txtを開いてみることになると思います。

#! /usr/bin/env ruby
# mydircat.rb

def mydircat(ary)
  allthestring = ary.inspect + "\n"
  ary.each{|filename|
    allthestring += "\nFilename: " + filename + "\n"
    File.open(filename){|f|
      allthestring += f.read
    }
  }
  return allthestring
end


def mydir(reg)
  list = []
  Dir.glob('**/*').each{ |filename|
    if reg =~ filename then
      list[list.size] = filename
    end
  }
  return list
end


if $0 == __FILE__
  if ARGV[0] != nil
    reg = Regexp.new(ARGV[0])
    ary = mydir(reg)
    print mydircat(ary)
  end
end