Mac: espressione regolare per analizzare l'output del comando scutil

0

Ho sotto l'output di 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

Volevo eliminare gli indirizzi IP da Addresses : <array> da sotto

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

Come scrivere un'espressione regolare per questo?

    
posta Omkar 30.03.2015 - 06:15
fonte

1 risposta

3

Potresti provare qualcosa di simile a questo:

scutil --nc show <service id> | sed -n '/IPv4/,/ExcludedRoutes/p' | sed '/ExcludedRoutes/,/{/d'
  • sed -n '/IPv4/,/ExcludedRoutes/p' mostrerà il testo tra IPv4 e ExcludedRoutes , entrambi inclusi.
  • sed '/ExcludedRoutes/,/{/d' rimuoverà la riga ExcludedRoutes .

Il risultato sarà simile a questo:

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

Leggi altre domande sui tag