Comandos pipe en JUNOS de Juniper

     El sistema operativo JUNOS de Juniper tiene varias características muy útiles que te permiten controlar la salida que vemos cuando ejecutamos los comandos. Son los llamados comandos de pipe, y además se pueden combinar varios comandos de pipe juntos.

   Los comandos de pipe más útiles son:
     Match : Para especificar exactamente lo que queremos que nos muestre.
     Except: Especificamos que queremos ignorar
     Find: Nos muestra la salida comenzando por la primera línea que coincida con el patrón
     Last: Nos muestra sólo la última pantalla de la salida
     Count: Nos cuenta las líneas de salida del comando



Expresiones regulares
     
Los comandos de pipe match ,except y find toman como argumento expresiones regulares. Las expresiones regulares están compuestas de elementos, operadores de agrupación y operadores de repetición. Las expresiones regulares son insensibles a mayúsculas.

  • match + palabra. Para encontrar una cadena de texto utilizaremos match más la cadena de texto a buscar.
  • Se pueden utilizar listas o rangos de caracteres a machear. Para ello debemos introducir el rango o lista entre corchetes. Por ejemplo: match ge-0/0/[0-9] o match ge-0/0/[036]. En este último ejemplo buscaríamos la concordancia de 0, 3 ó 6.


root@ESSW01> show interfaces terse | match "ge-0/0/[0-4]"   

ge-0/0/0                up    up  
ge-0/0/0.0              up    up   eth-switch
ge-0/0/1                up    up  
ge-0/0/1.0              up    up   eth-switch
ge-0/0/2                up    up  
ge-0/0/2.0              up    up   aenet    --> ae12.0
ge-0/0/3                up    up  
ge-0/0/3.0              up    up   eth-switch
ge-0/0/4                up    up  
ge-0/0/4.0              up    up   aenet    --> ae13.0
ge-0/0/10               up    up  
ge-0/0/10.0             up    up   eth-switch
ge-0/0/11               up    up  
ge-0/0/11.0             up    up   eth-switch
ge-0/0/12               up    up  
ge-0/0/12.0             up    up   eth-switch
ge-0/0/13               up    up  
ge-0/0/13.0             up    up   eth-switch
ge-0/0/14               up    up  
ge-0/0/14.0             up    up   eth-switch
......................................................
......................................................

  • El punto (.) es un carácter especial que equivale a cualquier otro carácter.
  • Caracteres especiales a machear:
    • ^ Para machear al principio de una línea
    • $ Para machear al final de una línea
  • Operadores de repetición:
    • * Encontrar 0 ó más instancias del elemento inmediatamente precedente.
    • ? Encontrar 0 ó 1 instancia del elemento inmediatamente precedente.
    • + Encontrar 1 ó más instancias del elemento inmediatamente precedente.
  • Operador lógico OR (|). La expresión regular debe estar incluida entre comillas.



root@ESSW01> show ethernet-switching table | match "flood | static"        
  Gestion           *                 Flood          - All-members
  Gestion           b0:a8:6e:07:75:c1 Static         - Router
  Gestion1          *                 Flood          - All-members
  Gestion1          b0:a8:6e:07:75:c1 Static         - Router
  Gestion2          *                 Flood          - All-members
  Gestion2          b0:a8:6e:07:75:c1 Static         - Router
  ILO               *                 Flood          - All-members
  ILO               b0:a8:6e:07:75:c1 Static         - Router
  Internet131       *                 Flood          - All-members
  Server            *                 Flood          - All-members
  Produccion        *                 Flood          - All-members
  Produccion        b0:a8:6e:07:75:c1 Static         - Router
  VDI               *                 Flood          - All-members
  VDI               b0:a8:6e:07:75:c1 Static         - Router
  Vlan20            *                 Flood          - All-members
  Vlan24            *                 Flood          - All-members
  default           *                 Flood          - All-members
  iSCSI0            *                 Flood          - All-members
  iSCSI0            b0:a8:6e:07:75:c1 Static         - Router
  iSCSI1            *                 Flood          - All-members
  iSCSI1            b0:a8:6e:07:75:c1 Static         - Router
  Vlan998           *                 Flood          - All-members
  Vlan998           b0:a8:6e:07:75:c1 Static         - Router

{master:0}

  • Podemos hacer una operación lógica AND con match y except  filtrando los resultados con otra operación de match o except
  • Se pueden utilizar paréntesis para agrupar datos en expresiones regulares. Lo que se indique entre paréntesis será tratado como un único elemento.


root@ESSW01> show interfaces | match "(^physical.* ge-)" | match "(^physical.* up)"

Physical interface: ge-0/0/40, Enabled, Physical link is Up
Physical interface: ge-0/0/41, Enabled, Physical link is Up
Physical interface: ge-0/0/42, Enabled, Physical link is Up
Physical interface: ge-0/0/43, Enabled, Physical link is Up
Physical interface: ge-0/0/46, Enabled, Physical link is Up
Physical interface: ge-1/0/0, Enabled, Physical link is Up
Physical interface: ge-1/0/1, Enabled, Physical link is Up

  • Si quieres buscar coincidencia de cualquiera de los caracteres especiales en una expresión regular, debes preceder el carácter con backslash (\).

Si no utilizamos \, el punto se toma como carácter especial :
root@ESSW01> show interfaces vlan terse | match 10.1.  
vlan.1                  up    up   inet     10.1.0.18/24
vlan.111                up    up   inet     10.111.0.18/24 
vlan.112                up    up   inet     10.112.0.18/24 
vlan.113                up    up   inet     10.113.0.18/24 
vlan.171                up    up   inet     10.171.0.18/24

{master:0}

En cambio al utilizarlo la salida cambia totalmente:

root@ESSW01> show interfaces vlan terse | match 10.1\.  
vlan.1                    up    up   inet     10.1.0.18/24

{master:0}

  • No paging. Para deshabilitar la característica de paginado automático se utiliza el comando no-more añadido al final del comando.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.