PowerShell equivalent to grep -f

前端 未结 9 1662
情书的邮戳
情书的邮戳 2020-12-22 16:09

I\'m looking for the PowerShell equivalent to grep --file=filename. If you don\'t know grep, filename is a text file where each line has a regular

9条回答
  •  感动是毒
    2020-12-22 16:30

    I find out a possible method by "filter" and "alias" of PowerShell, when you want use grep in pipeline output(grep file should be similar):

    first define a filter:

    filter Filter-Object ([string]$pattern)
    {
        Out-String -InputObject $_ -Stream | Select-String -Pattern "$pattern"
    }
    

    then define alias:

    New-Alias -Name grep -Value Filter-Object
    

    final, put the former filter and alias in your profile:

    $Home[My ]Documents\PowerShell\Microsoft.PowerShell_profile.ps1

    Restart your PS, you can use it:

    alias | grep 'grep'

    ==================================================================

    relevent Reference

    1. alias: Set-Aliasenter link description here New-Aliasenter link description here

    2. Filter(Special function)enter link description here

    3. Profiles(just like .bashrc for bash):enter link description here

    4. out-string(this is the key)enter link description here:in PowerShell Output is object-basedenter link description here,so the key is convert object to string and grep the string.

    5. Select-Stringenter link description here:Finds text in strings and files

提交回复
热议问题