Wählen Sie eine Zeichenfolge zu finden, und dann wählen Sie einen Teil einer Zeichenkette 3 Zeilen aus dem gefundenen Wort

Ich versuche powershell verwenden, um Folgendes zu tun:
Ich bin versucht, nach einem Wort suchen, und dann noch einmal das Wort gefunden ist muss ich dann 3 Zeilen und lese-Zeichen 34 bis 42 und drucken diese aus.

Test-Datei:

  1. Ich bin zu gehen für einen langen Spaziergang hier Wandern wir zu Fuß hinunter zum Fluss
    yadda yadda.
  2. lalalalala - Sie sagt
  3. Rolle Rolle Rolle sagt er
  4. die gut trocken war

Was ich habe:
select-string $TestFile -Muster "gut" -simplematch 3{34,42}

Was ich nicht herausfinden können:
Zum drucken von "walk walk walk" Teil.

Was passiert, ist jedes mal druckt er sich die ganze Linie 1. 2. und 3.
Ich brauche nur den einen Teil des "walk walk walk"

Ich das für log-Dateien, falls das hilft. In der Datei das Wort Fehler wird 3 Zeilen unterhalb der Fehler-code, in der Regel ein string, oben ist es.

  • warum nicht verwenden Sie die -Kontext-Parameters von select-string?
  • Ich kann get-Kontext 3: drucken der 3rd-line-up, aber wie wähle ich ein Wort in diesem string? 3{35,15} ändert nicht den Wert der Ausgabe.
  • PS>(gc C:\temp\sls.txt |sls "test" -Context 3).context |select -ExpandProperty precontext |select -first 1
  • sls ist der alias für den select-string (nur in powershell V3)
InformationsquelleAutor user1616756 | 2013-02-05
Schreibe einen Kommentar