Select-String
Localiza texto em cadeias de caracteres e arquivos.
Sintaxe
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Description
O cmdlet Select-String
usa a correspondência de expressões regulares para pesquisar padrões de texto em cadeias de caracteres de entrada e arquivos. Você pode usar Select-String
semelhantes a grep
no Unix ou findstr.exe
no Windows.
Select-String
é baseado 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 localizar várias correspondências por linha, exibir texto antes e depois da correspondência ou exibir um valor booliano (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 caractere específica, como quando você está pesquisando arquivos de texto Unicode.
Select-String
usa o BOM (byte-order-mark) para detectar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele pressupõe que a codificação seja 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 o caso deve corresponder apenas ao padrão de maiúsculas e minúsculas.
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 arquivos de texto
Esse 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 padrão de especifica o texto para corresponder Get-.
Select-String
exibe a saída no console do PowerShell. O nome do arquivo e o número de linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro padrão de.
Exemplo 3: localizar uma correspondência de padrão
Neste exemplo, vários arquivos são pesquisados para localizar 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 caminho 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 de linha precedem cada linha de conteúdo que contém uma correspondência para o parâmetro padrão de.
Exemplo 4: usar Select-String em uma função
Este exemplo cria uma função para pesquisar um padrão nos arquivos de ajuda do PowerShell. Para este 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. A palavra-chave 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 conforme mostrado no exemplo. Depois que o colchete de fechamento for adicionado, você será retornado 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 *.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 padrão de usa a cadeia de caracteres About_ como critérios 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: pesquisar uma cadeia de caracteres em um log de eventos do Windows
Este exemplo pesquisa 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 about_Automatic_Variables.
$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 padrão de especifica a cadeia de caracteres com falha 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 .txtC:\Windows\System32*. O parâmetro Recurse inclui os subdiretórios. Os objetos são enviados pelo pipeline para Select-String
.
Select-String
usa o parâmetro padrão 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.
Nota
Dependendo de suas permissões, você pode ver Access 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
para 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 correspondência
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
para 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 padrão 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 gera 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
localiza apenas 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 caminho 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 padrão de para pesquisar cada arquivo para a cadeia de caracteres do 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 do PowerShell.
A propriedade $A.Matches
lista a primeira ocorrência do padrão do PowerShell em cada linha.
A propriedade $A.Matches.Length
conta a primeira ocorrência do padrão do 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 do 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, cada ocorrência do padrão do PowerShell é contada.
Exemplo 10 – Converter objetos de pipeline em cadeias de caracteres usando 'Out-String'
O resultado ToString()
do objeto canalizado não é a mesma representação de cadeia de caracteres avançada produzida pelo sistema de formatação do PowerShell. Portanto, talvez seja necessário redirecionar os objetos para Out-String
primeiro.
A canalizaçã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, ela gera toda a cadeia de caracteres de várias linhas.
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
A 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 gera apenas a linha correspondente.
Parâmetros
-AllMatches
Indica que o cmdlet pesquisa mais de uma correspondência em cada linha de texto. Sem esse parâmetro, Select-String
localiza apenas a primeira correspondência em cada linha de texto.
Quando Select-String
encontra mais de uma correspondência em uma linha de texto, ela ainda emite apenas um objeto MatchInfo para a linha, mas a propriedade Corresponde do objeto contém todas as correspondências.
Nota
Esse parâmetro é ignorado quando usado em combinação com o parâmetro SimpleMatch. Se você quiser retornar todas as correspondências e o padrão que você está procurando contém caracteres de expressão regulares, 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.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CaseSensitive
Indica que as correspondências de cmdlet diferenciam maiúsculas de minúsculas. Por padrão, as correspondências não diferenciam maiúsculas de minúsculas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 você inserir dois números como o valor, o primeiro número determinará o número de linhas antes da correspondência e o segundo número determinará o número de linhas após a correspondência. Por exemplo, -Context 2,3
.
Na exibição padrão, as linhas com uma correspondência são indicadas por um colchete de ângulo reto (>
) (ASCII 62) na primeira coluna da exibição. 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 receptor 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 de 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.
Tipo: | Int32[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Culture
Especifica um nome de cultura para corresponder ao padrão especificado. O parâmetro cultura deve ser usado com o parâmetro SimpleMatch. O comportamento padrão usa a cultura do runspace atual do PowerShell (sessão).
Para obter uma lista de todas as culturas com suporte, use Get-Culture -ListAvailable
comando.
Além disso, esse parâmetro aceita os seguintes argumentos:
- CurrentCulture, que é o padrão;
- Ordinal, que é uma comparação binária não linguística;
- Invariável, isso é comparação independente de 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 a conclusão da guia para rolar pela 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 do .NET CultureInfo.Name, consulte CultureInfo.Name.
O parâmetro Culture foi introduzido no PowerShell 7.
Tipo: | String |
Cargo: | Named |
Valor padrão: | Culture of the current PowerShell session |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Encoding
Especifica o tipo de codificação para o arquivo de destino. O valor padrão é utf8NoBOM
.
Os valores aceitáveis para esse parâmetro são os seguintes:
-
ascii
: usa a codificação para o conjunto de caracteres ASCII (7 bits). -
ansi
: usa a codificação para a página de código ANSI da cultura atual. Essa opção foi adicionada ao PowerShell 7.4. -
bigendianunicode
: codifica no formato UTF-16 usando a ordem de bytes big-endian. -
bigendianutf32
: codifica no formato UTF-32 usando a ordem de bytes big-endian. -
oem
: usa a codificação padrão para programas de MS-DOS e console. -
unicode
: codifica no formato UTF-16 usando a ordem de bytes little-endian. -
utf7
: codifica no formato UTF-7. -
utf8
: codifica no formato UTF-8. -
utf8BOM
: codifica no formato UTF-8 com Marca de Ordem de Byte (BOM) -
utf8NoBOM
: codifica no formato UTF-8 sem Marca de Ordem de Bytes (BOM) -
utf32
: codifica no formato UTF-32.
A partir do PowerShell 6.2, o parâmetro de codificação de também permite IDs numéricas 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.
A partir do PowerShell 7.4, você pode usar o valor Ansi
para o parâmetro de codificação para passar a ID numérica para a página de código ANSI da cultura atual sem precisar especificá-la manualmente.
Nota
UTF-7 * não é mais recomendável usar. A partir do PowerShell 7.1, um aviso será gravado se você especificar utf7
para o parâmetro de codificação.
Tipo: | Encoding |
Valores aceitos: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Cargo: | Named |
Valor padrão: | UTF8NoBOM |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-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.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-InputObject
Especifica o texto a ser pesquisado. Insira uma variável que contenha o texto ou digite um comando ou expressão que obtém o texto.
Usar o parâmetro InputObject não é o mesmo que enviar cadeias de caracteres pelo pipeline para Select-String
.
Quando você redireciona mais de uma cadeia de caracteres para o cmdlet Select-String
, ele pesquisa 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
retornará 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.
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-List
Somente a primeira instância do texto correspondente é retornada de cada arquivo de entrada. Essa é 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 MatchInfo para cada correspondência encontrada.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples dizem ao PowerShell para não interpretar nenhum caractere como sequências de escape. Para obter mais informações, consulte about_Quoting_Rules.
Tipo: | String[] |
Aliases: | PSPath, LP |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-NoEmphasis
Por padrão, Select-String
realça a cadeia de caracteres que corresponde ao padrão pesquisado com o parâmetro padrão. O parâmetro NoEmphasis desabilita o realce.
A ênfase usa cores negativas com base em sua tela de fundo do PowerShell e cores de texto. Por exemplo, se as cores do PowerShell forem um plano de fundo preto com texto em branco. A ênfase é um plano de fundo branco com texto preto.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-NotMatch
O parâmetro NotMatch localiza o texto que não corresponde ao padrão especificado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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
, *.doc
ou *.*
. Se você especificar apenas um diretório, o comando falhará.
Tipo: | String[] |
Cargo: | 1 |
Valor padrão: | Local directory |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-Pattern
Especifica o texto a ser encontrado em cada linha. O valor padrão é tratado como uma expressão regular.
Para saber mais sobre expressões regulares, consulte about_Regular_Expressions.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Quiet
Indica que o cmdlet retorna uma resposta simples em vez de um objeto MatchInfo. O valor retornado será $true
se o padrão for encontrado ou $null
se o padrão não for encontrado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Raw
Faz com que o cmdlet produza apenas as cadeias de caracteres correspondentes, em vez de objetos matchInfo. Esses são os resultados em um comportamento mais semelhante aos comandos de do Unix ou findstr.exe do Windows.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 do texto no parâmetro Padrão. Ele não interpreta o valor do parâmetro Pattern como uma instrução de expressão regular.
Além disso, quando SimpleMatch é usado, a propriedade Corresponde do objeto MatchInfo retornado está vazia.
Nota
Quando esse parâmetro é usado com o parâmetro AllMatches, o AllMatches é ignorado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar qualquer objeto que tenha um método ToString()
para este cmdlet.
Saídas
Por padrão, esse cmdlet retorna um objeto MatchInfo para cada correspondência encontrada.
Quando você usa o parâmetro Quiet, esse cmdlet retorna um valor de booliano indicando se o padrão foi encontrado.
Quando você usa o parâmetro Raw, esse cmdlet retorna um conjunto de objetos String que correspondem ao padrão.
Observações
O PowerShell inclui os seguintes aliases para Select-String
:
- Todas as plataformas:
sls
Select-String
é semelhante a grep
no Unix ou findstr.exe
no Windows.
O alias sls
para o cmdlet Select-String
foi introduzido no PowerShell 3.0.
Nota
De acordo com verbos aprovados para comandos do PowerShell, 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
. Essa é uma exceção a essa 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çãoToString()
do objeto. - O resultado
ToString()
do objeto canalizado não é a mesma representação de cadeia de caracteres avançada produzida pelo sistema de formatação do PowerShell. Portanto, talvez seja necessário redirecionar os objetos paraOut-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 Pattern. 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, redirecione-o para
Select-String
. - Armazene uma cadeia de caracteres de texto em uma variável e especifique a variável como o valor do parâmetro InputObject.
- Se o texto for 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 de 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á pesquisando texto em arquivos, pois 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 booliano (True ou False) para indicar se ele encontrou uma correspondência, em vez de um objeto MatchInfo.
Ao corresponder 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 *