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 é exatamente a ferramenta que você precisa.
Os usuários de um sistema operacional Linux já devem estar familiarizados com a incrível utilidade do comando Grep, e o findstr desempenha uma função semelhante no Microsoft Windows. Você pode combiná-lo com outros comandos usando barras verticais ou apenas executá-lo diretamente para analisar vários arquivos de texto. Vejamos como o findstr funciona com alguns exemplos.
Usando o comando Findstr
A sintaxe básica é simples – findstr
findstr SFC exemplo1.txt
Este comando encontrará e exibirá todas as linhas que contêm a string de pesquisa SFC. Observe que, por padrão, findstr diferencia maiúsculas de minúsculas, portanto, qualquer menção ao SFC não será correspondida.
Parâmetros
Você pode personalizar ainda mais o funcionamento do findstr incluindo parâmetros opcionais. Opções como /B ou /I modificam o comportamento de findstr, impondo condições adicionais à pesquisa. Por exemplo:
findstr /I SFC exemplo1.txt
Incluir /I como parâmetro torna a pesquisa insensível a maiúsculas e minúsculas, permitindo que todas as menções ao termo correspondam, independentemente da sua capitalização. Você pode encontrar a lista de todos os parâmetros de findstr em documentos oficiais da Microsoft.
Padrões opcionais
Os parâmetros não são a única maneira de personalizar o findstr. Colocar
findstr “SFC DISM” exemplo1.txt
O texto 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
O uso do caractere curinga corresponde à regex para 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 ver qual linha se originou de qual arquivo.
Tubos
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 terminando em .txt. É claro que este exemplo específico é inútil na prática, pois dir já pode localizar arquivos do mesmo tipo com uma expressão regular.
Também é possível seguir o caminho mais longo de redirecionando a saída para um arquivo de texto e depois usar findstr no arquivo de texto, mas é mais fácil eliminar o intermediário.
Aplicações do Findstr no Windows
Os usos óbvios de findstr são facilmente aparentes 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 possui 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 procurar nomes de arquivos usando expressões regulares. Mas com findstr, você pode pesquisar arquivos que compartilhem outros atributos, como hora ou data de criação.
Suponha que ocorreu um erro às 18h43 e você deseja localizar todos os arquivos de log criados nesse horário. Somente com o comando dir, você terá que examinar 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 data específica ou obter uma lista de diretórios.
diretório | findstr DIR
Filtrando 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, e é aí que entra o findstr.
Piping a saída do netstat para findstr permite procurar conexões com propriedades específicas. Por exemplo, é assim que você pode obter uma lista de todas as conexões estabelecidas.
netstat | findstr ESTABELECIDO
Esse 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 precisar percorrer tudo.
ipconfig | findstr Temporário
Você pode estender esse método para obter qualquer informação do ipconfig, desde máscaras de sub-rede até endereços de gateway.
Analisando arquivos de script
Qualquer que seja 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 que usam a instruçã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 das linhas, o que é muito útil para arquivos de script.
findstr /N if script.ahk
Vale a pena usar o Findstr?
A principal dificuldade em navegar na interface da linha de comando é a quantidade de texto que é necessário 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 solução de problemas de rede até encontrar os 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.
Resumindo, 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.
.