Partilhar via


Select-String

Localiza texto em cadeias de caracteres e arquivos.

Sintaxe

File (Predefinição)

Select-String
    [-Pattern] <String[]>
    [-Path] <String[]>
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-Quiet]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

ObjectRaw

Select-String
    [-Pattern] <String[]>
    -InputObject <PSObject>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

Object

Select-String
    [-Pattern] <String[]>
    -InputObject <PSObject>
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-Quiet]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

FileRaw

Select-String
    [-Pattern] <String[]>
    [-Path] <String[]>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

LiteralFileRaw

Select-String
    [-Pattern] <String[]>
    -LiteralPath <String[]>
    -Raw
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

LiteralFile

Select-String
    [-Pattern] <String[]>
    -LiteralPath <String[]>
    [-Culture <String>]
    [-SimpleMatch]
    [-CaseSensitive]
    [-Quiet]
    [-List]
    [-NoEmphasis]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-NotMatch]
    [-AllMatches]
    [-Encoding <Encoding>]
    [-Context <Int32[]>]
    [<CommonParameters>]

Description

O cmdlet Select-String usa correspondência de expressão regular para pesquisar padrões de texto em cadeias de caracteres e arquivos de entrada. Você pode usar Select-String semelhante ao grep no UNIX ou findstr.exe no Windows.

Select-String baseia-se em linhas de texto. Por padrão, Select-String localiza a primeira correspondência em cada linha e, para cada correspondência, exibe o nome do arquivo, o número da linha e todo o texto na linha que contém a correspondência. Você pode direcionar Select-String para encontrar várias correspondências por linha, exibir texto antes e depois da correspondência ou exibir um valor booleano (True ou False) que indica se uma correspondência foi encontrada.

Select-String pode exibir todas as correspondências de texto ou parar após a primeira correspondência em cada arquivo de entrada. Select-String pode ser usado para exibir todo o texto que não corresponde ao padrão especificado.

Você também pode especificar que Select-String deve esperar uma codificação de caracteres específica, como quando você está pesquisando arquivos de texto Unicode. Select-String usa a marca de ordem de bytes (BOM) para detetar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele assume que a codificação é UTF8.

Exemplos

Exemplo 1: Encontrar uma correspondência que diferencia maiúsculas de minúsculas

Este exemplo faz uma correspondência que diferencia maiúsculas de minúsculas do texto que foi enviado pelo pipeline para o cmdlet Select-String.

'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch

As cadeias de caracteres de texto Hello e HELLO são enviadas pelo pipeline para o cmdlet Select-String. Select-String usa o parâmetro Pattern para especificar HELLO. O parâmetro CaseSensitive especifica que as maiúsculas e minúsculas devem corresponder apenas ao padrão maiúsculo. SimpleMatch é um parâmetro opcional e especifica que a cadeia de caracteres no padrão não é interpretada como uma expressão regular. Select-String exibe HELLO no console do PowerShell.

Exemplo 2: Localizar correspondências em ficheiros de texto

Este comando pesquisa todos os arquivos com a extensão de nome de arquivo .txt no diretório atual. A saída exibe as linhas nesses arquivos que incluem a cadeia de caracteres especificada.

Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get-'
Alias.txt:8:Alias            cat -> Get-Content
Alias.txt:28:Alias           dir -> Get-ChildItem
Alias.txt:43:Alias           gal -> Get-Alias
Command.txt:966:Cmdlet       Get-Acl
Command.txt:967:Cmdlet       Get-Alias

Neste exemplo, Get-Alias e Get-Command são usados com o cmdlet Out-File para criar dois arquivos de texto no diretório atual, Alias.txt e Command.txt.

Select-String usa o parâmetro Path com o curinga asterisco (*) para pesquisar todos os arquivos no diretório atual com a extensão de nome de arquivo .txt. O parâmetro Pattern especifica o texto a ser correspondido Get-. Select-String exibe a saída no console do PowerShell. O nome do arquivo e o número da linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro Pattern.

Exemplo 3: Encontrar uma correspondência de padrão

Neste exemplo, vários arquivos são pesquisados para encontrar correspondências para o padrão especificado. O padrão usa um quantificador de expressão regular. Para obter mais informações, consulte about_Regular_Expressions.

Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\6\en-US\default.help.txt:27:    beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50:    or go to: https://go.microsoft.com/fwlink/?LinkID=210614

O cmdlet Select-String usa dois parâmetros, Path e Pattern. O parâmetro Path usa a variável $PSHOME que especifica o diretório do PowerShell. O restante do caminho inclui o subdiretório en-US e especifica cada arquivo *.txt no diretório. O parâmetro Pattern especifica para corresponder a um ponto de interrogação (?) em cada arquivo. Uma barra invertida (\) é usada como um caractere de escape e é necessária porque o ponto de interrogação (?) é um quantificador de expressão regular. Select-String exibe a saída no console do PowerShell. O nome do arquivo e o número da linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro Pattern.

Exemplo 4: Usar Select-String em uma função

Este exemplo cria uma função para procurar um padrão nos arquivos de ajuda do PowerShell. Neste exemplo, a função só existe na sessão do PowerShell. Quando a sessão do PowerShell é fechada, a função é excluída. Para obter mais informações, consulte about_Functions.

function Search-Help
{
    $PSHelp = "$PSHOME\en-US\*.txt"
    Select-String -Path $PSHelp -Pattern 'About_'
}

Search-Help
C:\Program Files\PowerShell\7\en-US\default.help.txt:67:    The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70:    Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93:    Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97:    about_Updatable_Help

A função é criada na linha de comando do PowerShell. O comando Function usa o nome Search-Help. Pressione Enter para começar a adicionar instruções à função. No prompt >>, adicione cada instrução e pressione Enter como mostrado no exemplo. Depois que o colchete de fechamento for adicionado, você retornará a um prompt do PowerShell.

A função contém dois comandos. A variável $PSHelp armazena o caminho para os arquivos de ajuda do PowerShell. $PSHOME é o diretório de instalação do PowerShell com o subdiretório en-US que especifica cada arquivo de *.txt no diretório.

O comando Select-String na função usa os parâmetros Path e Pattern. O parâmetro Path usa a variável $PSHelp para obter o caminho. O parâmetro Pattern usa a cadeia de caracteres About_ como critério de pesquisa.

Para executar a função, digite Search-Help. O comando Select-String da função exibe a saída no console do PowerShell.

Exemplo 5: Procurar uma cadeia de caracteres num registo de eventos do Windows

Este exemplo procura uma cadeia de caracteres em um log de eventos do Windows. A variável $_ representa o objeto atual no pipeline. Para obter mais informações, consulte sobre_Variáveis_Automáticas.

$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'

O cmdlet Get-WinEvent usa o parâmetro LogName para especificar o log do aplicativo. O parâmetro MaxEvents obtém os 50 eventos mais recentes do log. O conteúdo do log é armazenado na variável chamada $Events.

A variável $Events é enviada pelo pipeline para o cmdlet Select-String. Select-String usa o parâmetro InputObject. A variável $_ representa o objeto atual e message é uma propriedade do evento. O parâmetro Pattern espécie a cadeia de caracteres Failed e procura correspondências em $_.message. Select-String exibe a saída no console do PowerShell.

Exemplo 6: Localizar uma cadeia de caracteres em subdiretórios

Este exemplo pesquisa um diretório e todos os seus subdiretórios em busca de uma cadeia de caracteres de texto específica.

Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive

Get-ChildItem usa o parâmetro Path para especificar C:\Windows\System32*.txt. O parâmetro Recurse inclui os subdiretórios. Os objetos são enviados pela canalização para Select-String.

Select-String usa o parâmetro Pattern e especifica a cadeia de caracteres Microsoft. O parâmetro CaseSensitive é usado para corresponder ao caso exato da cadeia de caracteres. Select-String exibe a saída no console do PowerShell.

Observação

Dependendo de suas permissões, você pode ver acesso negado mensagens na saída.

Exemplo 7: Localizar cadeias de caracteres que não correspondem a um padrão

Este exemplo mostra como excluir linhas de dados que não correspondem a um padrão.

Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set'  -NotMatch

O cmdlet Get-Command envia objetos pelo pipeline para o Out-File criar o arquivo Command.txt no diretório atual. Select-String usa o parâmetro Path para especificar o arquivo Command.txt. O parâmetro Pattern especifica Get e set como o padrão de pesquisa. O parâmetro NotMatch exclui Get e set dos resultados. Select-String exibe a saída no console do PowerShell que não inclui Get ou set.

Exemplo 8: Localizar linhas antes e depois de uma partida

Este exemplo mostra como obter as linhas antes e depois do padrão correspondente.

Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
  Command.txt:986:Cmdlet          Get-CmsMessage           6.1.0.0    Microsoft.PowerShell.Security
  Command.txt:987:Cmdlet          Get-Command              6.1.2.0    Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet          Get-ComputerInfo         6.1.0.0    Microsoft.PowerShell.Management
  Command.txt:990:Cmdlet          Get-Content              6.1.0.0    Microsoft.PowerShell.Management
  Command.txt:991:Cmdlet          Get-ControlPanelItem     3.1.0.0    Microsoft.PowerShell.Management
  Command.txt:992:Cmdlet          Get-Credential           6.1.0.0    Microsoft.PowerShell.Security

O cmdlet Get-Command envia objetos pelo pipeline para o Out-File criar o arquivo Command.txt no diretório atual. Select-String usa o parâmetro Path para especificar o arquivo Command.txt. O parâmetro Pattern especifica Get-Computer como o padrão de pesquisa. O parâmetro Context usa dois valores, antes e depois, e marca correspondências de padrão na saída com um colchete angular (>). O parâmetro Context produz as duas linhas antes da primeira correspondência de padrão e três linhas após a última correspondência de padrão.

Exemplo 9: Localizar todas as correspondências de padrão

Este exemplo mostra como o parâmetro AllMatches localiza cada correspondência de padrão em uma linha de texto. Por padrão, Select-String só encontra a primeira ocorrência de um padrão em uma linha de texto. Este exemplo usa propriedades de objeto encontradas com o cmdlet Get-Member.

$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3:    PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6:    Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9:    PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups   : {0}
Success  : True
Name     : 0
Captures : {0}
Index    : 4
Length   : 10
Value    : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9

O cmdlet Get-ChildItem usa o parâmetro Path. O parâmetro Path usa a variável $PSHOME que especifica o diretório do PowerShell. O restante do caminho inclui o subdiretório en-US e especifica cada arquivo *.txt no diretório. Os objetos Get-ChildItem são armazenados na variável $A. A variável $A é enviada pelo pipeline para o cmdlet Select-String. Select-String usa o parâmetro Pattern para pesquisar cada arquivo para a cadeia de caracteres PowerShell.

Na linha de comando do PowerShell, o conteúdo da variável $A é exibido. Há uma linha que contém duas ocorrências da cadeia de caracteres PowerShell.

A propriedade $A.Matches lista a primeira ocorrência do padrão PowerShell em cada linha.

A propriedade $A.Matches.Length conta a primeira ocorrência do padrão PowerShell em cada linha.

A variável $B usa os mesmos cmdlets Get-ChildItem e Select-String, mas adiciona o parâmetro AllMatches. AllMatches localiza cada ocorrência do padrão PowerShell em cada linha. Os objetos armazenados nas variáveis $A e $B são idênticos.

A propriedade $B.Matches.Length aumenta porque, para cada linha, todas as ocorrências do padrão PowerShell são contadas.

Exemplo 10 - Converter objetos de pipeline em strings usando 'Out-String'

O resultado ToString() do objeto canalizado não é a mesma representação de cadeia de caracteres rica produzida pelo sistema de formatação do PowerShell. Então, você pode precisar canalizar os objetos para Out-String primeiro.

A tubulação para Out-String converte a saída formatada em um único objeto de cadeia de caracteres de várias linhas. Isso significa que, quando Select-String encontra uma correspondência, ele gera a cadeia de caracteres de várias linhas inteira.

PS> $hash = @{
    Name = 'foo'
    Category = 'bar'
}

# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'

# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'

Name                           Value
----                           -----
Name                           foo
Category                       bar

# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'

Name                           foo

Canalização para Out-String -Stream converte a saída formatada em vários objetos de cadeia de caracteres de linha única. Isso significa que, quando Select-String encontra uma correspondência, ela produz apenas a linha correspondente.

Parâmetros

-AllMatches

Indica que o cmdlet procura mais de uma correspondência em cada linha de texto. Sem esse parâmetro, Select-String encontra apenas a primeira correspondência em cada linha de texto.

Quando Select-String encontra mais de uma correspondência em uma linha de texto, ele ainda emite apenas uma objeto MatchInfo para a linha, mas a propriedade Matches do objeto contém todas as correspondências.

Observação

Este parâmetro é ignorado quando usado em combinação com o parâmetro SimpleMatch. Se você deseja retornar todas as correspondências e o padrão que você está procurando contém caracteres de expressão regular, você deve escapar desses caracteres em vez de usar SimpleMatch. Consulte about_Regular_Expressions para obter mais informações sobre como escapar de expressões regulares.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-CaseSensitive

Indica que as correspondências do cmdlet diferenciam maiúsculas de minúsculas. Por padrão, as correspondências não diferenciam maiúsculas de minúsculas.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Context

Captura o número especificado de linhas antes e depois da linha que corresponde ao padrão.

Se você inserir um número como o valor desse parâmetro, esse número determinará o número de linhas capturadas antes e depois da correspondência. Se introduzir dois números como valor, o primeiro número determina o número de linhas antes da correspondência e o segundo número determina o número de linhas após a correspondência. Por exemplo, -Context 2,3.

No visor predefinido, as linhas com uma correspondência são indicadas por um colchete angular reto (>) (ASCII 62) na primeira coluna do ecrã. Linhas não marcadas são o contexto.

O parâmetro Context não altera o número de objetos gerados por Select-String. Select-String gera um objeto MatchInfo para cada correspondência. O contexto é armazenado como uma matriz de cadeias de caracteres na propriedade Context do objeto.

Quando a saída de um comando Select-String é enviada pelo pipeline para outro comando Select-String, o comando de recebimento pesquisa apenas o texto na linha correspondente. A linha correspondente é o valor da propriedade Line do objeto MatchInfo, não o texto nas linhas de contexto. Como resultado, o parâmetro Context não é válido no comando Select-String de recebimento.

Quando o contexto inclui uma correspondência, o objeto MatchInfo para cada correspondência inclui todas as linhas de contexto, mas as linhas sobrepostas aparecem apenas uma vez na exibição.

Propriedades dos parâmetros

Tipo:

Int32[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Culture

Especifica um nome de cultura para corresponder ao padrão especificado. O parâmetro Culture deve ser usado com o parâmetro SimpleMatch. O comportamento padrão usa a cultura do espaço de execução (sessão) atual do PowerShell.

Para obter uma lista de todas as culturas suportadas, use Get-Culture -ListAvailable comando.

Além disso, este parâmetro aceita os seguintes argumentos:

  • CurrentCulture, que é padrão;
  • Ordinal, isto é, comparação binária não-linguística;
  • Invariante, isto é, comparação independente da cultura.

Com Select-String -Culture Ordinal -CaseSensitive -SimpleMatch comando você obtém a comparação binária mais rápida.

O parâmetro Culture usa o preenchimento de tabulação para percorrer a lista de argumentos que especificam as culturas disponíveis. Para listar todos os argumentos disponíveis, use o seguinte comando:

(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues

Para obter mais informações sobre a propriedade .NET CultureInfo.Name, consulte CultureInfo.Name.

O parâmetro Culture foi introduzido no PowerShell 7.

Propriedades dos parâmetros

Tipo:String
Default value:Culture of the current PowerShell session
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor predefinido é utf8NoBOM.

Os valores aceitáveis para este parâmetro são os seguintes:

  • ascii: Usa a codificação para o conjunto de caracteres ASCII (7 bits).
  • bigendianunicode: Codifica no formato UTF-16 usando a ordem de bytes big-endian.
  • bigendianutf32: Codifica no formato UTF-32 utilizando a ordem de bytes big-endian.
  • oem: Utiliza a codificação predefinida para MS-DOS e programas de consola.
  • unicode: Codifica em formato UTF-16 utilizando a ordem de bytes little-endian.
  • utf7: Codifica em formato UTF-7.
  • utf8: Codifica em formato UTF-8.
  • utf8BOM: Codifica no formato UTF-8 com Byte Order Mark (BOM)
  • utf8NoBOM: Codifica no formato UTF-8 sem Byte Order Mark (BOM)
  • utf32: Codifica no formato UTF-32.

A partir do PowerShell 6.2, o parâmetro Encoding também permite IDs numéricos de páginas de código registradas (como -Encoding 1251) ou nomes de cadeia de caracteres de páginas de código registradas (como -Encoding "windows-1251"). Para obter mais informações, consulte a documentação do .NET para Encoding.CodePage.

Observação

UTF-7* não é mais recomendado para usar. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7 para o parâmetro Encoding.

Propriedades dos parâmetros

Tipo:Encoding
Default value:UTF8NoBOM
Valores aceites:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Exclude

Exclua os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt. Curingas são permitidos.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Include

Inclui os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt. Curingas são permitidos.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-InputObject

Especifica o texto a ser pesquisado. Insira uma variável que contenha o texto ou digite um comando ou expressão que obtenha o texto.

Usar o parâmetro InputObject não é o mesmo que enviar cadeias de caracteres pelo pipeline para Select-String.

Quando você canaliza mais de uma cadeia de caracteres para o cmdlet Select-String, ele procura o texto especificado em cada cadeia de caracteres e retorna cada cadeia de caracteres que contém o texto de pesquisa.

Quando você usa o parâmetro InputObject para enviar uma coleção de cadeias de caracteres, Select-String trata a coleção como uma única cadeia de caracteres combinada. Select-String retorna as cadeias de caracteres como uma unidade se encontrar o texto de pesquisa em qualquer cadeia de caracteres.

objetos FileInfo são tratados como um caminho para um arquivo. Quando os caminhos de arquivo são especificados, Select-String pesquisa o conteúdo do arquivo, não a representação ToString() do objeto.

Propriedades dos parâmetros

Tipo:PSObject
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

Object
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
ObjectRaw
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-List

Somente a primeira instância de texto correspondente é retornada de cada arquivo de entrada. Esta é a maneira mais eficiente de recuperar uma lista de arquivos que têm conteúdo correspondente à expressão regular.

Por padrão, Select-String retorna um objeto de MatchInfo para cada correspondência encontrada.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-LiteralPath

Especifica o caminho para os arquivos a serem pesquisados. O valor do parâmetro LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape. Para obter mais informações, consulte about_Quoting_Rules.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PSPath, LP

Conjuntos de parâmetros

LiteralFileRaw
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False
LiteralFile
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-NoEmphasis

Por padrão, Select-String destaca a cadeia de caracteres que corresponde ao padrão pesquisado com o parâmetro Pattern. O parâmetro NoEmphasis desativa o realce.

A ênfase usa cores negativas com base no plano de fundo do PowerShell e nas cores do texto. Por exemplo, se as cores do PowerShell forem um plano de fundo preto com texto branco. A ênfase é um fundo branco com texto preto.

Esse parâmetro foi introduzido no PowerShell 7.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-NotMatch

O parâmetro NotMatch localiza o texto que não corresponde ao padrão especificado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Path

Especifica o caminho para os arquivos a serem pesquisados. Curingas são permitidos. O local padrão é o diretório local.

Especifique arquivos no diretório, como log1.txt, *.docou *.*. Se você especificar apenas um diretório, o comando falhará.

Propriedades dos parâmetros

Tipo:

String[]

Default value:Local directory
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

File
Position:1
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False
FileRaw
Position:1
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Pattern

Especifica o texto a ser localizado em cada linha. O valor do padrão é tratado como uma expressão regular.

Para saber mais sobre expressões regulares, consulte about_Regular_Expressions.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Quiet

Indica que o cmdlet retorna um valor booleano (True ou False), em vez de um objeto MatchInfo . O valor é True se o padrão for encontrado; caso contrário, o valor será False.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

File
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
Object
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
LiteralFile
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Raw

Faz com que o cmdlet produza apenas as cadeias de caracteres correspondentes, em vez de objetos MatchInfo. Este é o resultado em comportamento que é o mais semelhante ao Unix grep ou comandos findstr.exe do Windows.

Esse parâmetro foi introduzido no PowerShell 7.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

ObjectRaw
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
FileRaw
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
LiteralFileRaw
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SimpleMatch

Indica que o cmdlet usa uma correspondência simples em vez de uma correspondência de expressão regular. Em uma correspondência simples, Select-String pesquisa a entrada para o texto no parâmetro Pattern. Ele não interpreta o valor do parâmetro Pattern como uma instrução de expressão regular.

Além disso, quando SimpleMatch é usada, a propriedade Matches do objeto MatchInfo retornado está vazia.

Observação

Quando esse parâmetro é usado com o parâmetro AllMatches, o AllMatches é ignorado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

PSObject

Você pode canalizar qualquer objeto que tenha um ToString() método para Select-String.

Saídas

Microsoft.PowerShell.Commands.MatchInfo, System.Boolean, System.String

Por padrão, a saída é um conjunto de objetos MatchInfo com um para cada correspondência encontrada. Se você usar o parâmetro Quiet , a saída será um valor booleano que indica se o padrão foi encontrado. Se você usar o parâmetro Raw , a saída será um conjunto de objetos String que correspondem ao padrão.

Notas

Select-String é semelhante ao grep no UNIX ou findstr.exe no Windows.

O alias de sls para o cmdlet Select-String foi introduzido no PowerShell 3.0.

Observação

De acordo com Approved Verbs for PowerShell Commands, o prefixo de alias oficial para cmdlets Select-* é sc, não sl. Portanto, o alias adequado para Select-String deve ser scs, não sls. Trata-se de uma exceção a esta regra.

Ao canalizar objetos para Select-String:

  • objetos FileInfo são tratados como um caminho para um arquivo. Quando os caminhos de arquivo são especificados, Select-String pesquisa o conteúdo do arquivo, não a representação ToString() do objeto.
  • O resultado ToString() do objeto canalizado não é a mesma representação de cadeia de caracteres rica produzida pelo sistema de formatação do PowerShell. Então, você pode precisar canalizar os objetos para Out-String primeiro. Para obter mais informações, consulte o Exemplo 10.

Para usar Select-String, digite o texto que você deseja encontrar como o valor do parâmetro Padrão de. Para especificar o texto a ser pesquisado, use os seguintes critérios:

  • Digite o texto em uma cadeia de caracteres entre aspas e, em seguida, canalize-o para Select-String.
  • Armazene uma cadeia de caracteres de texto em uma variável e, em seguida, especifique a variável como o valor do parâmetro InputObject.
  • Se o texto estiver armazenado em arquivos, use o parâmetro Path para especificar o caminho para os arquivos.

Por padrão, Select-String interpreta o valor do parâmetro Pattern como uma expressão regular. Para obter mais informações, consulte about_Regular_Expressions. Você pode usar o parâmetro SimpleMatch para substituir a correspondência de expressão regular. O parâmetro SimpleMatch localiza instâncias do valor do parâmetro Pattern na entrada.

A saída padrão do Select-String é um objeto MatchInfo, que inclui informações detalhadas sobre as correspondências. As informações no objeto são úteis quando você está procurando texto em arquivos, porque objetos MatchInfo têm propriedades como Filename e Line. Quando a entrada não é do arquivo, o valor desses parâmetros é InputStream.

Se você não precisar das informações no objeto MatchInfo, use o parâmetro Quiet. O parâmetro Quiet retorna um valor booleano (True ou False) para indicar se encontrou uma correspondência, em vez de um objeto MatchInfo.

Ao fazer a correspondência de frases, Select-String usa a cultura atual definida para o sistema. Para localizar a cultura atual, use o cmdlet Get-Culture.

Para localizar as propriedades de um objeto MatchInfo, digite o seguinte comando:

Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *