PowerShell script to show file location and line number which match patterns?

Welcome Forums General PowerShell Q&A PowerShell script to show file location and line number which match patterns?

This topic contains 1 reply, has 2 voices, and was last updated by

 
Participant
1 month, 3 weeks ago.

  • Author
    Posts
  • #119483

    Participant
    Points: 65
    Rank: Member

    People,

    Can anyone here please assist me in modifying the below PowerShell script to list the line number where the certain pattern is matched?

    $inFile = '\\server\share\directory\file.txt'
    $outFile = '\\server\share\directory\result.txt'
    $patternFile = 'C:\Temp\patternlist.txt'

    $pattern = (Get-Content -Path $patternFile | ForEach-Object {[regex]::Escape($_)}) -join '|'
    Write-Host "Searching with pattern '$($pattern)'"
    Select-String -Path $inFile -Pattern $pattern | Select-Object -ExpandProperty Line | Set-Content -Path $outFile

    The above script works but the exported file does not have the line number column where I can find the matched pattern?

    Thanks in advance.

  • #119513

    Participant
    Points: 332
    Helping Hand
    Rank: Contributor

    You could literally do this all in a one-liner

    gci C:\temp | select-string -Pattern 'balloon|hello' | select @{n='Filename';e={$_}},LineNumber
    
    Filename                                                                                       LineNumber
    --------                                                                                       ----------
    C:\temp\HelloWorld.ps1:1:'hello world'                                                                  1
    C:\temp\task.ps1:2:        $balloon = [System.Windows.Forms.NotifyIcon]::new()                          2
    C:\temp\task.ps1:4:        $balloon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)          4
    C:\temp\task.ps1:5:        $balloon.BalloonTipIcon  = [System.Windows.Forms.ToolTipIcon]::Info          5
    C:\temp\task.ps1:6:        $balloon.BalloonTipTitle = 'test'                                            6
    C:\temp\task.ps1:7:        $balloon.BalloonTipText  = 'testing'                                         7
    C:\temp\task.ps1:8:        $balloon.Visible  = $true                                                    8
    C:\temp\task.ps1:9:        $balloon.ShowBalloonTip(15000)                                               9
    C:\temp\task.ps1:10:        $balloon.dispose()                                                         10
    

You must be logged in to reply to this topic.