argumento de varias cadenas del comando findtr DOS

21
findstr /v "black"  File1.txt

El comando DOS anterior mostrará el contenido de 'File1.txt' que no coincide con la cadena "negra".

¿Cómo modificar este comando si necesito filtrar las palabras "negro" y "blanco"?

Arun
fuente
2
La findstrherramienta no es parte de MS-DOS. Viene con Windows (XP +?). Creo que te refieres a 'herramienta de línea de comandos' en lugar de 'comando DOS'.
Michel de Ruiter

Respuestas:

30

¿Cómo filtro las palabras "negro" y "blanco"?

El siguiente comando mostrará todas las líneas que contienen "black" NOR "white" :

findstr /v "black white" blackwhite.txt

El siguiente comando mostrará todas las líneas que contienen "black" OR "white" :

findstr "black white" blackwhite.txt

El siguiente comando mostrará todas las líneas que contienen EXACTAMENTE "black white ":

findstr /c:"black white" blackwhite.txt

El siguiente comando mostrará todas las líneas que contienen "black" AND "white" :

findstr "white" blackwhite.txt | findstr "black"

Notas:

  • Cuando la cadena de búsqueda contiene varias palabras, separadas por espacios, findstrdevolverá líneas que contengan cualquiera de las palabras (OR).

  • Una búsqueda literal ( /C:string) revertirá este comportamiento y permitirá buscar una frase u oración. Una búsqueda literal también permite buscar caracteres de puntuación.

Archivo de datos de ejemplo (blackwhite.txt):

red
black
white
blue
black white
black and white

Salida de ejemplo:

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

Otras lecturas

DavidPostill
fuente
1
muy interesante .. Supongo que esto estaría buscando blanco Y negrofindstr "white" File2.txt | findstr "black"
barlop
bueno, dado que tenemos NOR, todavía hay una permutación que podríamos considerar que falta. NAND Otro que podríamos considerar que falta, es XOR
barlop
@barlop No puedo entender cómo hacer NAND o XOR: / Sé cuál debería ser la salida , pero cómo llegar ...
DavidPostill
tal vez no haya una manera rápida y agradable, probablemente sería un nivel de error de comprobación de archivos por lotes, probablemente sea mejor usar alguna otra herramienta si al hacerlo, parece que grep no puede. Pero awk puede hacer bastante o, por supuesto, perl unix.stackexchange.com/questions/177513/…
barlop
Continuemos esta discusión en el chat .
barlop
0

Si necesita mostrar todas las líneas con las palabras "negro" o "blanco", elimine el / v en su comando.

Pruebe: findtr white File1.txt o findtr black File1.txt o findtr "black white" File1.txt

El operando / V imprimirá todas las líneas que NO contienen su cadena de búsqueda.

Escriba findtr /? para obtener más información sobre cómo usar FindStr.

Dean Spicer
fuente