Para os não iniciados, uma ferramenta de busca de padrões como findstr pode parecer inútil. Mas ao lidar com arquivos de log gerados pelo sistema ou saídas de linha de comando contendo centenas de linhas de texto, findstr é apenas a ferramenta que você precisa.
Os usuários de um sistema operacional Linux já estariam familiarizados com a incrível utilidade do comando Grep, e findstr cumpre um papel semelhante no Microsoft Windows. Você pode combiná-lo com outros comandos usando pipes ou simplesmente executá-lo diretamente para analisar vários arquivos de texto. Vamos ver como findstr funciona com alguns exemplos.
Índice
Usando o comando Findstr
A sintaxe básica é simples – findstr
findstr SFC example1.txt
Este comando encontrará e exibirá todas as linhas contendo a string de pesquisa SFC. Observe que, por padrão, findstr diferencia maiúsculas de minúsculas, portanto, nenhuma menção a SFC será correspondida.
Parâmetros
Você pode personalizar ainda mais como findstr funciona incluindo parâmetros opcionais. Opções como/B ou/I modificam o comportamento de findstr, impondo condições adicionais na pesquisa. Por exemplo:
findstr/I SFC example1.txt
Incluir/I como parâmetro torna a pesquisa insensível, permitindo que todas as menções do termo correspondência, independentemente de sua capitalização. Você pode encontrar a lista de todos os parâmetros de findstr no oficial Documentos da Microsoft.
Padrões opcionais
Os parâmetros não são a única maneira de personalizar findstr. Colocar o
findstr “SFC DISM” example1.txt
O acima retornará linhas correspondentes contendo qualquer um dos termos. Isso o torna útil ao procurar uma menção para um item com nomes diferentes.
Expressões regulares
Findstr é capaz de pesquisar vários arquivos. Alterar
findstr SFC *.txt
Usar o caractere curinga corresponde a regex a todos os arquivos de texto no diretório atual e seus subdiretórios. Os resultados também são segregados por nomes de arquivos, permitindo que você veja qual linha se originou de qual arquivo.
Pipes
Como a maioria dos comandos cmd, findstr também pode ser usado na saída de outros comandos. Basta adicionar um pipe após o final do comando de destino e invocar findstr sem um
diretório | findstr.txt
Isso executa uma pesquisa findstr na saída do comando dir, retornando a lista de arquivos que termina com.txt. Claro, este exemplo em particular é inútil na prática, pois dir já pode localizar arquivos do mesmo tipo com uma expressão regular.
Pode-se também seguir o caminho mais longo de redirecionar a saída para um arquivo de texto e, em seguida, usar findstr no arquivo de texto, mas é mais fácil cortar o intermediário.
Aplicações de Findstr no Windows
Os usos óbvios de findstr são facilmente perceptíveis apenas pela sintaxe. Você pode procurar arquivos de texto com uma string de texto específica ou ver se uma string específica está contida em um arquivo.
Isso, embora teoricamente útil, raramente é usado fora de casos raros. Na era dos serviços em nuvem como o Google Docs, a maioria das pessoas não tem mais muitos arquivos de texto.
As aplicações reais do findstr são um pouco mais sutis e envolvem resultados mais poderosos. Aqui estão alguns dos exemplos mais interessantes.
Encontrando tipos específicos de arquivos
O comando dir já inclui a opção de pesquisar nomes de arquivos usando expressões regulares. Mas com findstr, você pode pesquisar arquivos que compartilham outros atributos, como a hora ou a data de criação.
Suponha que ocorreu um erro às 18h43 e você deseja localizar todos os arquivos de log criados naquele momento. Com o comando dir sozinho, você terá que filtrar manualmente os resultados ou obter todos os arquivos de log e compará-los. Usando findstr, isso se torna um comando simples.
diretório | findstr 06:43
Você pode tentar o mesmo truque para encontrar arquivos criados em uma determinada data ou obter uma lista de diretórios.
diretório | findstr DIR
Filtrar informações de rede com Netstat
Netstat é um comando útil do Windows que fornece todas as informações sobre as conexões de rede do seu computador-informações demais, que é onde findstr
Enviar a saída do netstat para findstr permite que você procure conexões com propriedades específicas. Por exemplo, é assim que você pode obter uma lista de todas as conexões estabelecidas.
netstat | findstr ESTABELECIDO
Este truque é útil ao diagnosticar problemas de rede. Você pode até usar findstr com um PID de aplicativo para encontrar todas as conexões abertas por um processo específico.
netstat-o | findstr 13120
Obtenção de endereços IP específicos
O comando ipconfig permite visualizar detalhes de todas as interfaces de rede dos sistemas, incluindo endereços IP. Você pode usar findstr para extrair um tipo específico de endereço IP sem ter que percorrer tudo.
ipconfig | findstr Temporário
Você pode estender este método para obter qualquer informação do ipconfig, das máscaras de sub-rede aos endereços do gateway.
Analisando arquivos de script
Seja qual for a linguagem de programação em que você codificar, os arquivos de script são, em última análise, apenas texto. Isso significa que você pode usar findstr para analisar scripts e recuperar seções específicas sem vasculhar todo o código.
Digamos que queremos ver como a instrução if foi usada em um script específico. Podemos usar o seguinte comando:
findstr if script.ahk
Isso não apenas exibirá as linhas usando o if, mas também nos mostrará as expressões usadas. Você também pode incluir o parâmetro/N para exibir os números de linha, o que é muito útil para arquivos de script.
findstr/N if script.ahk
Vale a pena usar Findstr?
A principal dificuldade em navegar na interface de linha de comando é a quantidade de texto que é preciso filtrar. Findstr é uma ferramenta essencial para extrair informações úteis e filtrar lixo.
Como todos os comandos do terminal fornecem uma saída baseada em texto, findstr sempre pode ser usado para localizar os dados relevantes. Desde a solução de problemas de rede até a localização dos arquivos corretos, cada ação se torna mais eficiente com findstr.
Mesmo fora de sua sinergia com outros comandos, findstr é útil por sua capacidade de percorrer o conteúdo de arquivos de texto. Você pode encontrar erros específicos em arquivos de log gerados por máquina ou recuperar seções de código em um script complexo.
Em suma, findstr é uma ferramenta indispensável no arsenal de qualquer usuário avançado do Windows, especialmente aquele que pretende se familiarizar com a interface de linha de comando.