选择文本

时间:2016-05-01 20:54:59

标签: ruby

我目前正在开发一个小的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

执行在速度方面并不令我满意。我认为合并前两行可以更有效率,但尽管尝试了很多次,但我找不到正确的语法。

也许你们中的一些人可以给我很好的建议。感谢。

1 个答案:

答案 0 :(得分:0)

由于我没有找到一个很好的方式来提问,经过一些研究后我意识到我走错了路。

脚本的主要用法是围绕&#34; hhighlighter&#34;重新设计的。你可以在这里找到bash + perl命令 - &gt; github.com/paoloantinori/hhighlighter谢谢大家。