Cansado de usar as mesmas ferramentas de busca antigas em sua máquina, como o grep? Por que se contentar? Muitos equivalentes do grep no Windows podem ajudar a buscar precisamente o que você está procurando.
Neste tutorial, você aprenderá como esses equivalentes do grep tornam possível buscar através de arquivos mais rapidamente e encontrar a informação que você precisa num piscar de olhos.
Fique ligado e faça amizade com poderosas ferramentas de busca!
Pré-requisitos
Este tutorial inclui demonstrações práticas. Para acompanhar, certifique-se de ter o seguinte em funcionamento:
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell – Este tutorial utiliza o PowerShell 7.2.8.
- scoop – Este tutorial utiliza o scoop v0.3.1.
Encontrando Cadeias de Texto Específicas (findstr
) Dentro de Arquivos
Ser capaz de identificar instantaneamente cadeias de texto específicas (com padrões particulares) que você está procurando em um arquivo ajuda muito em seu fluxo de trabalho. Mas como? Recorra à utilidade de linha de comando findstr
no Windows, que permite buscar cadeias de texto específicas dentro de arquivos.
O findstr
é frequentemente usado como um equivalente ao grep
no Windows, pois tem funcionalidade semelhante ao comando Unix grep
. Quais são os benefícios de usar o findstr
? Um exemplo é que ele está integrado a qualquer sistema operacional (SO) Windows – nenhum software adicional é necessário.
Para encontrar cadeias específicas em um arquivo, siga estas etapas:
Crie um arquivo de texto com seu editor de texto preferido, nomeie-o como notes.txt e preencha o conteúdo abaixo no arquivo.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
Agora, abra o PowerShell como administrador e execute o comando abaixo para encontrar cadeias (findstr
) contra o padrão de pesquisa ("apple"
) no arquivo notes.txt
.
? O
findstr
tem muitos parâmetros que podem ser usados para personalizar a pesquisa. Mas neste tutorial, você explorará alguns dos parâmetros mais valiosos ao pesquisar cadeias em arquivos.

? Talvez você esteja procurando por cadeias em vários arquivos. Se for o caso, especifique os caminhos dos arquivos separados por espaços, como o exemplo abaixo:
findstr parâmetros "padrão" "C:\\caminho\\para\\arquivo1.txt" "C:\\caminho\\para\\arquivo2.txt"
Encontrando Cadeias que Correspondam a um Padrão Específico ou Literal
Ao trabalhar com arquivos de configuração, encontrar cadeias de caracteres em um padrão específico ou literal é crucial, especialmente na depuração. Felizmente, o parâmetro /c
indica ao comando findstr
para buscar cadeias de caracteres literais que correspondam a um padrão especificado, incluindo espaços ou caracteres especiais.
Adicionar o parâmetro /c
ao comando findstr
é útil para, mas não se limitando a:
- Pesquisar por uma frase específica ou conjunto de palavras que aparecem em uma ordem particular.
- Pesquisar por uma cadeia de caracteres que contenha espaços ou caracteres especiais.
Para ver como o parâmetro /c
funciona na prática, siga estas etapas:
1. Execute o comando findstr
abaixo para buscar a cadeia de caracteres literal (/c
) banana cherry
no arquivo *notes.txt*
.
No resultado abaixo, o comando findstr
retorna apenas linhas contendo a cadeia de caracteres exata banana cherry
com um espaço entre as duas palavras.
Lembre-se de que o parâmetro /c
é sensível a maiúsculas e minúsculas, então o comando findstr
retorna apenas a cadeia de caracteres com o caso exato de letras que você especificou. Se alguma das cadeias de caracteres no arquivo notes.txt não corresponder ao padrão especificado, o comando findstr
retorna uma saída em branco.

2. Em seguida, adicione a seguinte linha ao arquivo notes.txt, e salve as alterações.
Neste ponto, deve haver duas linhas no seu arquivo notes.txt com a string “hello”. Uma em minúsculas (hello, world.
), e outra com um ‘H’ maiúsculo (Hello, world.
).
hello, world.
3. Agora, execute cada comando abaixo para procurar a literal string hello, world
ou Hello, world
no arquivo notes.txt
.
Observe abaixo que, independentemente de haver duas linhas que contenham a string ‘hello, world’ no arquivo notes.txt, você obterá apenas uma linha de string.
O parâmetro /c
indica ao comando findstr
que ele deve imprimir linhas que contenham a string ‘hello, world’ com letra minúscula ou maiúscula ‘H’.

4. Por fim, execute o comando findstr
abaixo para procurar strings que contenham o padrão hello
no arquivo notes.txt
, ignorando (/i
) diferenciação de maiúsculas e minúsculas.
Buscas sensíveis a maiúsculas e minúsculas funcionam bem se você já souber o caso real da string que está procurando. Mas se desejar ver todas as linhas de strings que correspondem a um padrão, independentemente do caso das letras, o parâmetro /i
resolverá.

Encontrando Strings Específicas Dentro de Arquivos e Diretórios
Além de buscar strings específicas em arquivos, o comando findstr
permite procurar por strings correspondentes dentro de arquivos, diretórios e subdiretórios.
Suponha que deseje encontrar todos os arquivos em um diretório que contenham uma palavra específica em seu conteúdo. Se for o caso, deixe o parâmetro /s
fazer o trabalho sujo.
Execute o comando abaixo para pesquisar (/s
) no diretório atual e em seus subdiretórios (/s
) por todos os arquivos (*.*
) que contenham a string system
, ignorando a diferenciação de maiúsculas e minúsculas (-i
)
Lembre-se de que este comando procura apenas por arquivos que contenham a string system
como uma palavra completa e não aquelas que fazem parte de palavras maiores, como sistemático ou sistematizar.
A saída abaixo mostra uma lista de nomes de arquivos, um por linha, com o nome de cada arquivo que contém a string ‘system’.

Pesquisando Strings Usando o cmdlet Select-String
Até agora, você viu que o comando findstr
funciona excelente para encontrar strings, mas o cmdlet Select-String
não deve ser ignorado. Este cmdlet é equivalente ao grep
no Windows e permite que você pesquise padrões de texto específicos em arquivos e strings.
O cmdlet Select-String
é projetado para eficiência, permitindo que você pesquise rapidamente grandes quantidades de texto e suporte a expressões regulares (regex). Por sua vez, este cmdlet permite que você pesquise padrões ainda mais complexos do que o findstr
.
Para ver como funciona o cmdlet Select-String
, siga estes passos:
1. Abra primeiro o arquivo notes.txt, adicione as seguintes linhas e salve as alterações.
A adição dessas linhas é uma preparação para demonstrar como o cmdlet Select-String
lida com maiúsculas e minúsculas nos passos seguintes.
Apple
APPLE
ApplE
2. Em seguida, execute o seguinte comando para procurar a string apple
no arquivo notes.txt
.
Abaixo, várias linhas contêm a string ‘apple’ mas em diferentes maiúsculas e minúsculas, já que o cmdlet Select-String
não diferencia maiúsculas de minúsculas. Mas a boa notícia é que você pode identificar facilmente e verificar as strings correspondentes, já que elas estão destacadas.

? Talvez você queira usar a correspondência de string simples em vez de correspondência de regex. Se for o caso, adicione o parâmetro
-SimpleMatch
, conforme mostrado abaixo, e nunca se preocupe com a sintaxe de regex e caracteres especiais.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. Agora, execute o comando abaixo para procurar APPLE
no arquivo notes.txt
com a sensibilidade a maiúsculas e minúsculas ativada (-CaseSensitive
). O parâmetro -CaseSensitive
é útil para precisão na pesquisa.
Como você pode ver abaixo, a única correspondência encontrada tem exatamente a mesma caixa de letras que você especificou (APPLE).

4. Por fim, execute o comando abaixo usando regex para procurar o padrão '\?'
(um ponto de interrogação) em todos os arquivos de texto (*.txt
) no diretório $PSHOME\en-US
. Um regex permite que você pesquise padrões mais complexos.
Se o conteúdo de um arquivo tiver um ponto de interrogação, o comando retorna o caminho completo do arquivo para o console, como mostrado abaixo.

Usando o ripgrep (rg) como um equivalente do grep no Windows
rg é um utilitário de linha de comando de código aberto projetado para pesquisar rapidamente arquivos usando padrões regex. Como outros utilitários de linha de comando, rg tem muitas opções e recursos para personalizar suas pesquisas.
Mas ao contrário do comando findstr
e do cmdlet Select-String
, o rg não é instalado por padrão no seu sistema operacional Windows.
Para usar o rg como seu equivalente do grep no Windows:
1. Execute o comando scoop
abaixo para instalar
o ripgrep
no seu sistema. scoop install ripgrep

2. Em seguida, execute o seguinte comando rg
para verificar a versão instalada do rg.
Como mostrado abaixo, você verá o número da versão do rg instalado. Neste ponto, você pode executar comandos rg
para pesquisar por strings.

3. Execute o comando rg
abaixo para pesquisar a string apple
no arquivo notes.txt
.
A saída exibe quaisquer linhas no arquivo notes.txt que contenham a string apple, como mostrado abaixo.
Observe que a saída é semelhante à saída do cmdlet Select-String
. Mas ao invés de destacar, o rg
muda a cor da string correspondente e do número da linha para distinção rápida.

4. Agora, execute o seguinte comando usando regex para pesquisar por strings no arquivo notes.txt
.
A regex abaixo usa limites de palavra (\b) e diz ao rg para procurar linhas de strings que contenham uma palavra que começa com ‘s’ e termina com ‘e’ (s\w+e).

Filtrando Pesquisas por Tipo de Arquivo Específico
Talvez você seja específico sobre em qual diretório o arquivo que está procurando está, mas não o nome do arquivo. Nesses casos, pesquisar pelo conteúdo do arquivo enquanto filtra a pesquisa por tipo de arquivo pode ser sua melhor opção.
Filtrar a pesquisa para tipos de arquivo específicos pode ser útil quando você está interessado apenas em pesquisar tipos específicos de arquivos. Ou quando você deseja excluir certos tipos de arquivos da pesquisa.
Para filtrar a pesquisa para tipos de arquivo específicos, a opção –type fará o truque da seguinte forma:
1. Execute o seguinte comando rg para pesquisar a string apple em todos os arquivos de texto (–type txt) no diretório C:\\myfiles.
A opção –type recebe um tipo de arquivo como argumento, o que diz ao comando rg para pesquisar apenas arquivos que correspondam ao tipo de arquivo especificado.
A saída abaixo mostra a linha contendo a string ‘apple’ e o nome do arquivo associado (notes.txt).

2. Em seguida, crie um XML chamado notes.xml e preencha o código abaixo. Este arquivo XML é apenas uma preparação para demonstrar como as pesquisas com caracteres curinga funcionam.
3. Agora, execute o comando abaixo para procurar a string apple
em todos os (*.
). Este comando apenas busca por arquivos txt
e xml
conforme especificado (-g
).
Por padrão, o rg
é sensível a maiúsculas e minúsculas. Como resultado, a saída mostra apenas a linha que contém a string exata ‘apple’ e o arquivo associado.

4. Finalmente, execute o seguinte comando, como fez no passo três, para procurar a string apple
em todos os arquivos (*.
) que têm a extensão txt
ou xml
. Mas desta vez, acrescente a opção -i
, que instrui o rg
a ignorar as maiúsculas e minúsculas.

Conclusão
Ao longo deste tutorial, você aprendeu muitos equivalentes do grep no Windows para buscar strings de forma literal e usando regex. Você desbloqueou o poder desses equivalentes do grep com uma variedade de opções e parâmetros para personalizar a pesquisa e filtrar tipos específicos de arquivo.
Neste ponto, você deve se sentir confiante em depurar problemas, identificar questões e pesquisar em conjuntos grandes de arquivos de texto.
Agora, por que não colocar suas novas habilidades à prova praticando com regexes e personalizando suas pesquisas?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/