我目前正在开发一个小的ruby脚本,以便在我的cisco日志(以及后来的其他制造商,如ALU,Huawey等)上获取颜色语法。
这是我的算法:
^DATE: %FACILITY-SEV-MNEMONIC: Message
)当然,我会在稍后为每个制造商重复这个算法。
以下是每行日志的代码:
when /^(|\.|\*).*\s*.*\s(.*|.*\s.*): %.*-[1-6]-.*: .*$/ #Selecting IOS log as I expect.
/^(?<clock_sync>(\*|\.|))(?<d_month>\w{3})\s*(?<d_num>[0-9]*)\s*(?<d_hour>[0-9]{2}):(?<d_minute>[0-9]{2}):(?<d_second>[0-9]{2})(\.|)(?<d_msecond>([0-9]{3}|))(\s|)(?<host>(|.*)):\s(?<facility>.*)-(?<severity>.)-(?<mnemonic>.*):\s(?<message>.*)$/ =~ v # Get variables from log
puts ((dd_minute==d_minute) ? "| " : "+ " )+clock_sync.red+d_month.green+" "+d_num.green+" "+d_hour.green+":"+d_minute.green+":"+d_second.green+" |"+facility.bold+"-"+(severity.to_i>4? severity.bold.red : severity.to_i>2? severity.bold.brown : severity.bold)+"-"+mnemonic.bold+"| "+message
dd_minute = d_minute #Print Text
执行在速度方面并不令我满意。我认为合并前两行可以更有效率,但尽管尝试了很多次,但我找不到正确的语法。
也许你们中的一些人可以给我很好的建议。感谢。
答案 0 :(得分:0)
由于我没有找到一个很好的方式来提问,经过一些研究后我意识到我走错了路。
脚本的主要用法是围绕&#34; hhighlighter&#34;重新设计的。你可以在这里找到bash + perl命令 - &gt; github.com/paoloantinori/hhighlighter谢谢大家。