Need help to get output

Hi
I am quite new to ruby and i need to get couple of output with bellow
Result

i need something like

member0 Slot 0 Memory utilization 30
member0 Slot 1 Memory utilization 30
member1 Slot 0 Memory utilization 30
member1 Slot 1 Memory utilization 30

if i get the those out put, i will be able to get rest ..
Can any one please give me some light

Thanks

member0:

···

--------------------------------------------------------------------------
Slot 0:
Routing Engine status:
    Temperature 26 degrees C / 78 degrees F
    CPU temperature 51 degrees C / 123 degrees F
    DRAM 2048 MB
    Memory utilization 30 percent
    CPU utilization:
      User 0 percent
      Real-time threads 7 percent
      Kernel 4 percent
      Idle 89 percent
    Model RE-J6350-3400
    Serial ID NM1742
    Start time 2008-04-29 16:56:46 UTC
    Uptime 2 minutes, 20 seconds
    Load averages: 1 minute 5 minute 15 minute
                                       0.08 0.07 0.03

Routing Engine status:
Slot 1:
    Temperature 26 degrees C / 78 degrees F
    CPU temperature 51 degrees C / 123 degrees F
    DRAM 2048 MB
    Memory utilization 30 percent
    CPU utilization:
      User 0 percent
      Real-time threads 7 percent
      Kernel 4 percent
      Idle 89 percent
    Model RE-J6350-3400
    Serial ID NM1742
    Start time 2008-04-29 16:56:46 UTC
    Uptime 2 minutes, 20 seconds
    Load averages: 1 minute 5 minute 15 minute
                                       0.08 0.07 0.03

member1:
--------------------------------------------------------------------------
Slot 0:
Routing Engine status:
    Temperature 26 degrees C / 78 degrees F
    CPU temperature 51 degrees C / 123 degrees F
    DRAM 2048 MB
    Memory utilization 30 percent
    CPU utilization:
      User 0 percent
      Real-time threads 7 percent
      Kernel 4 percent
      Idle 89 percent
    Model RE-J6350-3400
    Serial ID NM1742
    Start time 2008-04-29 16:56:46 UTC
    Uptime 2 minutes, 20 seconds
    Load averages: 1 minute 5 minute 15 minute
                                       0.08 0.07 0.03

Routing Engine status:
Slot 1:
    Temperature 26 degrees C / 78 degrees F
    CPU temperature 51 degrees C / 123 degrees F
    DRAM 2048 MB
    Memory utilization 30 percent
    CPU utilization:
      User 0 percent
      Real-time threads 7 percent
      Kernel 4 percent
      Idle 89 percent
    Model RE-J6350-3400
    Serial ID NM1742
    Start time 2008-04-29 16:56:46 UTC
    Uptime 2 minutes, 20 seconds
    Load averages: 1 minute 5 minute 15 minute
                                       0.08 0.07 0.03

I would be really grateful if any one can help me with a script

thanks

--
Posted via http://www.ruby-forum.com/.

member,slot="",""
File.readlines(ARGV[0]).each do |linecrlf|
  line = linecrlf.chomp
  case line
    when /^member/ then member=line
    when /^Slot/ then slot=line
    when /Memory utilization/
      puts "%10s %10s %s" % [member,slot,line.gsub(/\b+percent/,"%")]
  end
end

···

--
Posted via http://www.ruby-forum.com/.

I'm not as good at Ruby notation, but does this modification do what you
want?

member,slot,outputstring="","",""
File.readlines(ARGV[0]).each do |linecrlf|
  line = linecrlf.chomp
  case line
    when /^member/ then member=line
    when /^Slot/ then slot=line
    when /Memory utilization/
      outputstring = "#{outputstring}#{member} #{slot} #{line}\n"
  end
end

puts outputstring.gsub(/:/,"").gsub(/\s+percent/,"")

···

--
Posted via http://www.ruby-forum.com/.

If you alter that last line to the below then the output looks much
tidier:

puts outputstring.gsub(/:/,"").gsub(/\s+percent/,"").gsub(/ +/," ")

···

--
Posted via http://www.ruby-forum.com/.

Regis d'Aubarede wrote in post #1074491:

member,slot="",""
File.readlines(ARGV[0]).each do |linecrlf|
  line = linecrlf.chomp
  case line
    when /^member/ then member=line
    when /^Slot/ then slot=line
    when /Memory utilization/
      puts "%10s %10s %s" % [member,slot,line.gsub(/\s+percent/,"%")]
  end
end

Hi thanks
I put those output in a router file

so i edited like this

#!/usr/bin/ruby

member,slot="",""
File.readlines("router").each do |linecrlf|
  line = linecrlf.chomp
  case line
    when /^member/ then member=line
    when /^Slot/ then slot=line
    when /Memory utilization/
      puts "%10s %10s %s" % [member,slot,line.gsub(/\b+percent/,"%")]
  end
end

but it shows

ruby router_check.rb
router_check.rb:10: invalid regular expression; there's no previous
pattern, to which '+' would define cardinality at 3: /\b+percent/

···

--
Posted via http://www.ruby-forum.com/\.

ruby router_check.rb
router_check.rb:10: invalid regular expression; there's no previous
pattern, to which '+' would define cardinality at 3: /\b+percent/

try with /\s+percent/

···

--
Posted via http://www.ruby-forum.com/\.

Regis d'Aubarede wrote in post #1074497:

ruby router_check.rb
router_check.rb:10: invalid regular expression; there's no previous
pattern, to which '+' would define cardinality at 3: /\b+percent/

try with /\s+percent/

hi thanks
its work
only problem is Slot is not showing

how can i fix that ??

Thanks

···

--
Posted via http://www.ruby-forum.com/\.