Como obter o texto de pesquisa do PowerShell?

Como obter o texto de pesquisa do PowerShell?

grep é um poderoso utilitário de pesquisa de texto no Linux, mas não está disponível no Windows. Embora existam portas e soluções de terceiros, o PowerShell oferece equivalentes internos grep que farão o mesmo trabalho em seus scripts.

Usando findstr para pesquisar no PowerShell

O PowerShell tem vários utilitários de pesquisa diferentes, cada um com seus próprios pontos fortes. O mais simples é findstro executável nativo do Windows. Isso funciona bem para substituir o grep por operações de pesquisa simples na linha de comando. Por exemplo, você pode passar a saída para ele ls para procurar correspondências.

ls | findstr "foo"

Você também pode pesquisar várias palavras de uma só vez, usar curingas para corresponder a qualquer coisa e usar um /R sinalizador para passar expressões regulares básicas.

ls | findstr /R ba[a-z]\.txt

No entanto, se você quiser pesquisar explicitamente incluindo espaço, precisará usar /C: o sinalizador:

ls | findstr /C:"foo"

Se você está acostumado com a linha de comando do Linux e não quer se lembrar de um novo comando, você pode configurar “grep” como um alias para findstr, o que economizará um pouco de memória muscular.

new-alias grep findstr

Usando Select-String para pesquisar grep no PowerShell

Outro método nativo oferecido pelo PowerShell é o Select-String cmdlet, que é semelhante em muitos aspectos, findstrmas é um cmdlet do PowerShell em vez de um executável do Windows.

Isso significa que ele funcionará melhor em scripts do PowerShell e, o mais importante, retornará sua saída como um objeto que pode ser lindamente impresso pelo PowerShell. Também é mais fácil de usar na linha de comando, pois a conclusão da guia do PowerShell funcionará com ele.

Funciona da mesma findstrmaneira e pode aceitar curingas e expressões regulares.

ls | Select-String fools | Select-String -Pattern <regexPattern>

Você pode usar Select-String para pesquisar texto dentro de arquivos passando um -Path argumento para ele. Você também pode usá-lo com entrada passada de outros cmdlets, como Get-Content.

Select-String -Path ".\foo.txt"-Pattern ba.*

Se você quiser usá-lo na linha de comando, também poderá usar o alias “grep” para acesso rápido.

remove-alias grep

new-alias grep Select-String

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *