Powershell select-string multiple patterns

Powershell Select-String Multiple Patterns

The Select-String cmdlet in PowerShell allows you to search for text patterns within files or input strings. It can be used to search for multiple patterns using regular expressions or simple strings. Here is how you can accomplish that:

Example 1: Searching for multiple patterns in a file:

$fileContent = Get-Content -Path "C:\path\to\file.txt"
$patterns = "pattern1", "pattern2", "pattern3"

$matches = $fileContent | Select-String -Pattern $patterns

foreach ($match in $matches) {
    Write-Host "Match found: $($match.Line)"
}

In the above example, we first retrieve the content of the file using the Get-Content cmdlet and store it in the $fileContent variable. Next, we define an array of patterns that we want to search for in the file. The Select-String cmdlet is then used with the -Pattern parameter set to the array of patterns. It returns a collection of MatchInfo objects which contain details about the matches. Finally, we iterate through the matches and output the matching lines using the Write-Host cmdlet.

Example 2: Searching for multiple patterns in a string:

$inputString = "This is a sample string"
$patterns = "sample", "is"

$matches = $inputString | Select-String -Pattern $patterns

foreach ($match in $matches) {
    Write-Host "Match found: $($match.Line)"
}

In this example, we have a simple input string instead of a file. We define the patterns we want to search for in the $patterns array. The Select-String cmdlet is used with the input string and the array of patterns, and it returns a collection of matches. Again, we iterate through the matches and output the matching lines using the Write-Host cmdlet.

Leave a comment