findstr /v "black" File1.txt
El comando de 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"?
Respuesta1
¿Cómo filtro las palabras "negro" y "blanco"?
El siguiente comando mostrará todas las líneas que contienen"black"
NI "white"
:
findstr /v "black white" blackwhite.txt
El siguiente comando mostrará todas las líneas que contienen"black"
O "white"
:
findstr "black white" blackwhite.txt
El siguiente comando mostrará todas las líneas que contienenEXACTAMENTE "black white
":
findstr /c:"black white" blackwhite.txt
El siguiente comando mostrará todas las líneas que contienen"black"
Y "white"
:
findstr "white" blackwhite.txt | findstr "black"
Notas:
Cuando la cadena de búsqueda contiene varias palabras, separadas por espacios,
findstr
devolverá líneas que contengan cualquiera de las palabras (O).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
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- encontrartr- Buscar cadenas en archivos.
Respuesta2
Si necesita mostrar todas las líneas con las palabras "negro" o "blanco", elimine /v en su comando.
Pruebe: findstr white File1.txt o findstr black File1.txt o findstr "black white" File1.txt
El operando /V imprimirá todas las líneas que NO contengan su cadena de búsqueda.
Escriba findtr /? para obtener más información sobre cómo utilizar findtr.
Respuesta3
Quería agregar a esto para mencionar cómo usar findtr con stdout en Windows para búsquedas múltiples.
A continuación se explica cómo enumerar solo los nombres de las interfaces de red y sus direcciones IP:
ipconfig /all | findstr /i /L /c:"Ethernet" /c:"IPv4"
La documentación de Microsoftdetalla cada parámetro
/i
Ignora el caso de los caracteres al buscar la cadena./l
Procesa cadenas de búsqueda literalmente./c:<string>
Utiliza el texto especificado como una cadena de búsqueda literal.
Respuesta4
Aquí hay otro ejemplo que utiliza un método de salida diferente, no solo una búsqueda de archivos directa. Por ejemplo, verifique el estado del puerto de red donde port = 98765
y status = ESTABLISHED or LISTENING
.
Por ejemplo, esto ejecuta un netstat cada cinco segundos, luego canaliza la salida de netstat a FIND (también podría usar FINDSTR
), luego canaliza esos resultados a findstr para filtrar cuando el puerto está en un estado determinado (en este caso ESTABLISHED or LISTENING
).
netstat -an 5 | find "98765" | findstr "ESTABLISHED LISTENING"
TCP 192.168.123.456:57349 10.10.12.34:98765 ESTABLISHED