none
Regular Expression RRS feed

  • Frage

  • Hallo Ihc habe in einer Log-Datei folgende Einträge wie z.B.

    WS_63349111_1343. oder   WS_62349111_1343.

    Nun möchte ich aber aus der Textdatei  63349111 und  62349111 herausfiltern. Dazu habe ich folgenden Regulären Ausdruck erstellt (bin noch Anfänger darin ;)) 

    ^[6]{1}[2|3]{1}[0-9]{6}$

    um diesen dann wie folgt anzuwenden:  

    GET-Content  GET-Content testregex.log | Select-String "^[6]{1}[2|3]{1}[0-9]{6}$"

    Leider funktioniert dieser in der Powershell nicht.

    Gebe ich allerdings folgendes in der Powershell ein 

    '63349111' -match ' ^[6]{1}[2|3]{1}[0-9]{6}$' und bei  'erterter63349111rtertert' -match '[6]{1}[2|3]{1}[0-9]{6}'  ebenfalls. Wobei ^und $ wohl Zielanfang und Zeilenende bedeuten. Deshalb denke  ich, das diese Zeichen nichts in meinem Ausdruck falsch sein werden.

    kommt true heraus. Was mach falsch?  

    Grüße niesel



    Montag, 6. August 2012 15:27

Antworten

  • Erstmal hoffe ich das du beim Scripten sorgfältiger bist, als beim Posten von Beiträgen. :-)

    Zum Regex-Ausdruck: Du hattest die Lösung schon! Der von dir gesuchte Ausdruck steht in der Mitte einer Zeile (davor steht "WS_", dahinter "_1343"). Also warum glaubst du, die Zeichen für Satzanfang/Satzende würden bei einem Suchmuster der die Mitte einer Zeile herausfiltern soll, schon nicht stören?

    Ansonsten brauchst du noch den Parameter "-allmatches" um alle Treffer in der Textdatei zu finden. Die unten dann noch folgenden zwei Befehle, sind dazu da, dir wirklich nur die Treffer auszugeben (probiers mal ohne, um den Unterschied zu sehen).

    So gehts:

    GET-Content test.log | Select-String -AllMatches "[6]{1}[2|3]{1}[0-9]{6}" | Select-Object -ExpandProperty matches | Select-Object -ExpandProperty value

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 6. August 2012 19:53
    Moderator