Mon 28 Aug 2006
Expresiones regulares en PERL
Enviado al blog por el pinche cash segun el bajo la categoria Linux, cisco
Bueno, ora que le he estado entrando un poco mas al perl, me he dado buenos topes con las expresiones regulares, pero son bastante utiles para obtener informacion de una linea de texto con cierto patron y obtener lo que se quiere…
esta es la linea escupida por un sh ver de un router cisco1751:
IOS ™ C1700 Software (C1700-NO3SV3Y7-M), Version 12.2(4)YB, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1)
esta la de un routercito 800
IOS ™ C820 Software (C820-K9OSV6Y6-M), Version 12.3(17b), RELEASE SOFTWARE (fc2)
con esta expresion regular:
if ($line =~ /IOS.*Version (.*?),/) {
print "Version es $1 \n";
}
PSEUDO-EXPLICACION:
/ / = indica que es lo que se va a evaluar
IOS = la linea contioene la cadena IOS, algo mas y despues la palabra Version.
(.*?) = es el valor que se substeaera y tomara el valor de $1
Se obtiene facilmente el numero de version (12.2(4)YB) o (12.3(17b)) de casi cualquie modelo de routers para usarse en algun reporte…
Que peladita se ve no?
Pero no lo fue pa mi, que me saco 2,3 canas mas
Incoherencias parecidas y calificaciones a este post:


