Mac: expresión regular para analizar la salida del comando scutil

0

He debajo de la salida de scutil --nc show <service id>

Connected
Extended Status <dictionary> {
  ConnectionStatistics : <dictionary> {
    ConnectCount : 6
    ConnectedCount : 3
    DisconnectedCount : 5
    MaxConnectTime : 1874
  }
  IPv4 : <dictionary> {
    Addresses : <array> {
      0 : 10.20.15.181
    }
    ExcludedRoutes : <array> {
      0 : <dictionary> {
        DestinationAddress : 115.112.149.120
        InterfaceName : en0
        SubnetMask : 255.255.255.255
      }
      1 : <dictionary> {
        DestinationAddress : 115.112.149.120
        InterfaceName : en0
        SubnetMask : 255.255.255.255
      }
      2 : <dictionary> {
        DestinationAddress : 115.112.149.120
        InterfaceName : en0
        SubnetMask : 255.255.255.255
      }
      3 : <dictionary> {
        DestinationAddress : 115.112.149.120
        InterfaceName : en0
        SubnetMask : 255.255.255.255
      }
      4 : <dictionary> {
        DestinationAddress : 115.112.149.120
        InterfaceName : en0
        SubnetMask : 255.255.255.255

Quería eliminar direcciones IP de Addresses : <array> desde abajo

IPv4 : <dictionary> {
    Addresses : <array> {
      0 : 10.20.15.181
      1 : 10.20.15.182
    }

¿Cómo escribir expresiones regulares para ello?

    
pregunta Omkar 30.03.2015 - 06:15

1 respuesta

3

Puedes intentar algo como esto:

scutil --nc show <service id> | sed -n '/IPv4/,/ExcludedRoutes/p' | sed '/ExcludedRoutes/,/{/d'
  • sed -n '/IPv4/,/ExcludedRoutes/p' mostrará el texto entre IPv4 y ExcludedRoutes , ambos incluidos.
  • sed '/ExcludedRoutes/,/{/d' eliminará la línea ExcludedRoutes .

El resultado será así:

$ cat file <replace-with-your-command> | sed -n '/IPv4/,/ExcludedRoutes/p' | sed '/ExcludedRoutes/,/{/d'
  IPv4 : <dictionary> {
    Addresses : <array> {
      0 : 10.20.15.181
    }
    
respondido por el jherran 30.03.2015 - 07:03

Lea otras preguntas en las etiquetas