Powershell: Filter the contents of a file by an array of strings

后端 未结 4 1537
[愿得一人]
[愿得一人] 2021-02-05 08:27

Riddle me this:

I have a text file of data. I want to read it in, and only output lines that contain any string that is found in an array of search terms.

If I

4条回答
  •  眼角桃花
    2021-02-05 08:44

    Try Select-String . It allows an array of patterns. Ex:

    $p = @("this","is","a test")
    Get-Content '.\New Text Document.txt' | Select-String -Pattern $p -SimpleMatch | Set-Content FilteredContent.txt
    

    Notice that I use -SimpleMatch so that Select-String ignores special regex-characters. If you want regex in your patterns, just remove that.

    For a single pattern I would probably use this, but you have to escape regex characters in the pattern:

    Get-Content '.\New Text Document.txt' | ? { $_ -match "a test" }
    

    Select-String is a great cmdlet for single patterns too, it's just a few characters longer to write ^^

提交回复
热议问题