
findstr /v "black" File1.txt
O comando DOS acima exibirá o conteúdo de 'Arquivo1.txt' que não corresponde à string "preto".
Como modificar este comando, se eu precisar filtrar as palavras “preto” e “branco”?
Responder1
Como filtrar as palavras “preto” e “branco”?
O comando a seguir exibirá todas as linhas contendo"black"
NEM "white"
:
findstr /v "black white" blackwhite.txt
O comando a seguir exibirá todas as linhas contendo"black"
OU "white"
:
findstr "black white" blackwhite.txt
O comando a seguir exibirá todas as linhas contendoEXATAMENTE "black white
":
findstr /c:"black white" blackwhite.txt
O comando a seguir exibirá todas as linhas contendo"black"
E "white"
:
findstr "white" blackwhite.txt | findstr "black"
Notas:
Quando a string de pesquisa contém várias palavras, separadas por espaços,
findstr
retornará linhas que contêm qualquer uma das palavras (OR).Uma busca literal (
/C:string
) reverterá esse comportamento e permitirá a busca por uma frase ou sentença. Uma pesquisa literal também permite pesquisar caracteres de pontuação.
Arquivo de dados de exemplo (blackwhite.txt):
red
black
white
blue
black white
black and white
Exemplo de saída:
F:\test>findstr /v "black white" blackwhite.txt
red
blue
F:\test>findstr "black white" blackwhite.txt
black
white
black white
black and white
F:\test>findstr /c:"black white" blackwhite.txt
black white
F:\test>findstr "white" blackwhite.txt | findstr "black"
black white
black and white
Leitura adicional
- Um índice AZ da linha de comando do Windows CMD- Uma excelente referência para todas as coisas relacionadas à linha cmd do Windows.
- encontrarstr- Procure strings em arquivos.
Responder2
Se você precisar exibir todas as linhas com as palavras "preto" ou "branco", livre-se do /v em seu comando.
Tente: findstr white File1.txt ou findstr black File1.txt ou findstr "black white" File1.txt
O operando /V imprimirá todas as linhas que NÃO contêm sua string de pesquisa.
Digite findstr /? para obter mais informações sobre como usar findstr.
Responder3
Queria acrescentar isso para mencionar como usar findstr com stdout no Windows para pesquisas múltiplas.
Veja como listar apenas nomes de interfaces de rede e seus endereços IP:
ipconfig /all | findstr /i /L /c:"Ethernet" /c:"IPv4"
A documentação da Microsoftdetalha cada parâmetro
/i
Ignora a capitalização dos caracteres ao pesquisar a string./l
Processa strings de pesquisa literalmente./c:<string>
Usa o texto especificado como uma sequência de pesquisa literal.
Responder4
Aqui está outro exemplo usando um método de saída diferente, não apenas uma pesquisa direta de arquivos. Por exemplo, verifique o status da porta de rede onde port = 98765
e status = ESTABLISHED or LISTENING
.
Por exemplo, isso executa um netstat a cada cinco segundos, depois canaliza a saída do netstat para um FIND (também pode usar FINDSTR
) e, em seguida, canaliza esses resultados para findstr para filtrar quando a porta está em um determinado estado (neste caso ESTABLISHED or LISTENING
).
netstat -an 5 | find "98765" | findstr "ESTABLISHED LISTENING"
TCP 192.168.123.456:57349 10.10.12.34:98765 ESTABLISHED