大量の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
リンク