2016-05-18 12 views
1

Ich schrieb unten Befehl, um alle Dateien in Workflow-Ordnern zu suchen und nur nach den Dateien suchen, die Muster 'TextBox.TextBox' übereinstimmten. Es hat gut funktioniert.PowerShell - Suchmuster aus bestimmten Zeilen

Jetzt möchte ich den Befehl ändern, so dass es nur Muster von Zeile 1 bis Zeile 50 sucht, statt die ganze Datei zu suchen. Wie kann ich das machen ?

Get-ChildItem E:\Test\Workflow -Recurse | Select-String -pattern "TextBox.TextBox" -SimpleMatch | group path 
| select name | measure 

Antwort

2

Sie können das Where-Object Cmdlets alle Spiele mit LineNumber weniger gleich filtern 50:

Get-ChildItem E:\Test\Workflow -Recurse | Select-String -pattern "TextBox.TextBox" -SimpleMatch | Where-Object LineNumber -le 50 group path 
+0

Dank ...... ............ – user664481

3

Sie Get-Content verwenden könnte und Select-Object -First:

Get-ChildItem E:\Test\Workflow -Recurse |ForEach-Object { 
    Get-Content -Path $_.FullName |Select-Object -First 50 
} |Select-String -Pattern "TextBox.TextBox" -SimpleMatch 
+0

@ user664481 Sie sind natürlich willkommen, die gewünschte Antwort als akzeptiert zu markieren, aber ich würde die Antwort als w markieren Welches Beste beantwortet deine Frage als die, die zuerst einging. Abhängig davon, wie groß Ihre Datei ist, ist dies möglicherweise besser, als würde sie nicht die gesamte Datei einlesen, um die Suche durchzuführen. – Matt

Verwandte Themen