URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9221
[ Назад ]

Исходное сообщение
"Помогите с котдом"

Отправлено Рома , 17-Авг-11 14:51 
#!/usr/bin/perl

use Net::Telnet::Cisco;
   my $session = Net::Telnet::Cisco->new(Host => 'xx.xx.xx.xx');
  $session->login('dff', 'dfsdf');
  # Execute a command
  my @output = $session->cmd('show int FastEthernet 0/1');
{
my @result = grep /input rate/i, @output;
print @result;

    };
Выдает:

  30 second input rate 6000 bits/sec, 13 packets/sec

Помогите сделать так что б выдавало только "13 packets/sec"


Содержание

Сообщения в этом обсуждении
"Помогите с котдом"
Отправлено allez , 17-Авг-11 18:40 
>[оверквотинг удален]
>   $session->login('dff', 'dfsdf');
>   # Execute a command
>   my @output = $session->cmd('show int FastEthernet 0/1');
>  {
> my @result = grep /input rate/i, @output;
> print @result;
>     };
> Выдает:
>   30 second input rate 6000 bits/sec, 13 packets/sec
> Помогите сделать так что б выдавало только "13 packets/sec"

Читайте perldoc -f split.

А это вам для иллюстрации:

$ perl -e '@arr = "30 second input rate 6000 bits/sec, 13 packets/sec";  ($a, $b) = split(/, /, "@arr[0]"); print "a = $a\n"; print "b = $b\n";'
a = 30 second input rate 6000 bits/sec
b = 13 packets/sec


"Помогите с котдом"
Отправлено serg_56 , 15-Сен-11 17:31 
можно и так

$session->login('dff', 'dfsdf');
# Execute a command
map{ print $1."\n" if(m!input rate.+\s(\d+\s+packets/sec)!)} $session->cmd('show int FastEthernet 0/1');

но тогда смотри map и regexp