大量のCisco製のルータのログがあって、その中からsh runだけを抜き出したファイルを作成する。
#使い方
#コマンドプロンプト起動
#cdでカレントフォルダ(抜き出ししたいファイル(ciscoログ)があるフォルダ)に移動
#(同じフォルダに当ファイルも置いておく)
#当rbファイル名がsh_run.rbの場合
#ruby "sh_run.rb"を実行
#同じフォルダに頭sh runのついたファイルができあがる。
#カレントフォルダ内のtxtファイル名情報を配列として取得 #全txtファイルの場合、filelists = Dir.glob("*.txt") filelists = Dir.glob("*.txt") #取得した各ファイル名に対して、shrun部分を抜き出して、新たなファイルに保存 filelists.each do |filename| #ファイルを読み込みモードで開く File.open(filename,"r") do |file| #ファイルを一気に読み込む file = file.read if file =~ /(#(sh run|show running-config)[\s|\S]*^end$)/ puts filename + " OK" filename_new = "sh run_" + filename #ファイルに書き込み File.open(filename_new,"w") do |f| f.puts $1 end else puts "NG" end end end
リンク