findstr DOS Comando argumento de múltiplas strings

17
findstr /v "black"  File1.txt

Acima do comando DOS, será exibido o conteúdo de 'File1.txt', que não corresponde à string "black".

Como modificar este comando, se eu precisar filtrar as palavras "preto" e "branco"?

Arun
fonte
1
o findstr ferramenta não faz parte do MS-DOS. Ele vem com o Windows (XP +?). Eu acho que você quer dizer 'ferramenta de linha de comando' em vez de 'comando DOS'.
Michel de Ruiter

Respostas:

23

Como faço para filtrar 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 contendo EXATAMENTE "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 contenham uma palavra (OR).

  • Uma pesquisa literal ( /C:string ) irá reverter esse comportamento e permitir a busca por uma frase ou sentença. Uma pesquisa literal também permite pesquisar caracteres de pontuação.

Exemplo de arquivo de dados (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

DavidPostill
fonte
1
muito interessante .. Eu acho que isso seria procurar branco e preto findstr "white" File2.txt | findstr "black"
barlop
bem, já que temos a NOR, então ainda há uma permutação que podemos considerar ausente. NAND Outro que poderíamos considerar a falta, é XOR
barlop
@barlop Eu não consigo descobrir como fazer NAND ou XOR: / Eu sei o que a saída devemos mas como chegar lá ...
DavidPostill
talvez não haja uma maneira rápida e agradável, provavelmente seria um erro de verificação de arquivo em nível de arquivo, provavelmente melhor usar alguma outra ferramenta, se fizer isso, parece que o grep não pode. Mas o awk pode fazer um pouco ou, claro, perl unix.stackexchange.com/questions/177513/…
barlop
0

Se você precisar exibir todas as linhas com as palavras "preto" ou "branco", elimine o comando / v no seu comando.

Tente: findstr branco File1.txt ou findstr preto File1.txt ou findstr "preto e branco" File1.txt

O operando / V imprimirá todas as linhas que não contêm sua seqüência de pesquisa.

Digite findstr /? para mais informações sobre como usar o findstr.

Dean Spicer
fonte