Airwolf89: In TCL String parsen und nur Teile des Strings ausgeben

Beitrag lesen

Hallo Leute,

ich habe nun die aufgabe mir TCL ein wenig anzuschauen. Aufgabe ist die. Ich habe den Output von einem Befehl in der Console eines Routers, ist ziemlich viel Text. Ich soll diesen Output (der vorerst ganz einfach in einer Variable gespeichert ist) filtern und nur das wichtigste anzeigen. Sieht in etwa so aus:

interface: Ethernet0
    Crypto map tag: cryptomapfres, local addr xxx.xxx.xxx.xxx

protected vrf: (none)
   local  ident (addr/mask/prot/port): (xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx/0/0)
   remote ident (addr/mask/prot/port): (xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx/0/0)
   current_peer xxx.xxx.xxx.xxx port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 4543315, #pkts encrypt: 4543315, #pkts digest: 4543315
    #pkts decaps: 4492025, #pkts decrypt: 4492025, #pkts verify: 4492025
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 1396, #recv errors 4

local crypto endpt.: xxx.xxx.xxx.xxx, remote crypto endpt.: xxx.xxx.xxx.xxx
     path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0
     current outbound spi: 0x221C18E5(572266725)

Da sollen dann die Zeilen local ident, remote ident, pkts encaps, pkts encrypt, pkts decaps, pkts decrypt und local crypto endpt ausgegeben werden.

Da kommt noch so einiges mehr in dem Output, da gibt es auch noch einige Blöcke wie diese mehr in dem Teil.

Wie kann ich das jetzt mit TCL am besten bewerkstelligen?

Ich dachte mir, vllt. gibt es ja ne art befehl der in nem langen string nach den Begriffen sucht die ich oben angegeben habe (die sich vllt. in nem Array hinterlegen lassen), allerdings habe ich solch einen Befehl noch nicht gefunden. Gibts da irgendwie sowas in der Richtung?

Mit RegExpressions dürfte das diesmal nicht zu bewerkstelligen sein oder?

Was habt ihr für Vorschläge wie man das bewerkstelligen könnte?

Danke im voraus.