Ya veíamos anteriormente el comando find en Windows que era el simil en cmd del comando grep en linux. Viendo las opciones que tenía pudimos apreciar, a pesar de poder resultarnos útil, que se nos quedaba un poco corto respecto a las opciones que nos daba.
Pues bien, existe otro comando en Windows similar pero más completo, es findstr.
- findstr sirve para buscar cadenas en archivos.
- Modo de uso
findstr [/parámetro] cadena [[unidad:][ruta]fichero]
- Opciones o parámetro:/B Coincide con el patrón si esta al comienzo de la linea
/E Coincide con el patrón si esta al final de la linea
/L Utiliza cadena de búsqueda literal
/R Utiliza cadena de búsqueda con expresiones regulares
/S Búsqueda recursiva, ficheros en la ruta actual y subdirectorios.
/I Especifica que no distinga entre mayúsculas y minúsculas
/X Imprime las líneas que coinciden exactamente
/V Imprime las líneas que NO coinciden exactamente
/N Imprime el número de línea antes de cada resultado.
/M Imprime sólo el fichero que contiene la cadena buscada
/O Imprime carácter compensado antes de cada línea de juego.
/P Saltar archivos con caracteres no imprimibles.
/OFF[LINE] No se salta ficheros con el atributo.
/A:attr Especifica el atributo de color con dos dígitos hexadecimales. Ver “color /?”
/F:file Lee la lista del archivo desde el archivo especificado (/ significa la consola).
/C:string Usa la cadena especificada como una cadena de búsqueda literal.
/G:file Obtiene las cadenas de búsqueda en el archivo especificado (/ significa la consola)
/D:dir Buscar en una lista de directorios, separados por punto y coma ‘;’
“cadena” Especifica el texto a buscar. Si la cadena contiene espacios debe ir entre comillas dobles “”
[unidad:][ruta]fichero Especifica la ruta del fichero donde queremos buscar. Se puede utilizar el signo “*” como comodín.
- Ejemplos
Supongamos que tenemos un fichero C:\tureceta\fichero.txt con este texto y que estamos ubicados en la ruta donde se encuentra el fichero (C:\tureceta), así no tendremos que especificar la ruta completa:
texto de prueba
texto de
text
prueba de
Buscar la cadena de texto “texto”
C:\tureceta>findstr texto fichero.txt
texto de prueba
texto
Buscar las palabras “texto” y “de”
C:\tureceta>findstr "texto de" fichero.txt
texto de prueba
texto
prueba de
Buscar la cadena “texto de”
C:\tureceta>findstr /C:"texto de" fichero.txt
texto de prueba
Buscar la cadena “prueba” al principio de linea
C:\tureceta>findstr /B prueba fichero.txt
prueba de
Buscar la cadena “prueba” al final de linea
C:\tureceta>findstr /E prueba fichero.txt
texto de prueba
Buscar la cadena ‘texto’ que no contenga la cadena ‘prueba’
C:\tureceta>findstr texto fichero.txt | findstr /V prueba
texto
Buscar las líneas que no contengan el texto “text”
C:\tureceta>findstr /V text fichero.txt
prueba de
Buscar las líneas que no contengan la cadena “text” y muestra el numero de línea donde aparecen
C:\tureceta>findstr /V /N text fichero.txt
4:prueba de
Buscar en toda la carpeta los ficheros que contengan la cadena “text” y muestra sólo el nombre del fichero
C:tureceta>findstr /M text *
fichero.txt
fichero2.txt
Expresiones regulares, breves referencias:
. Wildcard: cualquier carácter
* Repetición: cero o más apariciones el carácter o clase
^ Posicione de linea: comienzo de la linea
$ Posicione de linea: final de la linea
[class] Clase de carácter: cualquier carácter en el conjunto
[^class] Clase inversa: cualquier carácter que no esté en el conjunto de
[x-y] Rango: los caracteres dentro del rango especificado
\x Escape: uso literal del metacarácter x
\<xyz Posición de la palabra: Comienzo de la palabra
xyz\> Posición de la palabra: Comienzo de la palabra
Como podéis ver también con findstr, podemos concatenar comandos con pipes “|” así como usar varios parámetros. Vamos a ver si poco a poco vamos sacando partido a las herramientas que nos ofrece la consola Windows
Buscar las líneas que no contengan el texto "text"
Entradas relacionadas
Etiquetas: cmd, Comandos Windows