Cansado de usar las mismas herramientas de búsqueda en tu máquina, ¿como grep? ¿Por qué conformarse? Muchos equivalentes de grep en Windows pueden ayudar a buscar precisamente lo que estás buscando.
En este tutorial, aprenderás cómo estos equivalentes de grep hacen posible buscar a través de archivos más rápido y encontrar la información que necesitas en un abrir y cerrar de ojos.
¡Mantente atento y hazte amigo de herramientas de búsqueda poderosas!
Prerrequisitos
Este tutorial comprende demostraciones prácticas. Para seguir adelante, asegúrate de tener lo siguiente en su lugar:
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell: este tutorial utiliza PowerShell 7.2.8.
- scoop: este tutorial utiliza scoop v0.3.1.
Búsqueda de Cadenas de Texto Específicas (findstr
) Dentro de Archivos
Poder detectar instantáneamente cadenas de texto específicas (con patrones particulares) que estás buscando en un archivo ayuda enormemente con tu flujo de trabajo. ¿Pero cómo? Recurre al utilitario de línea de comandos findstr
en Windows, que te permite buscar cadenas de texto específicas dentro de archivos.
findstr
se utiliza a menudo como equivalente a grep
en Windows, ya que tiene funcionalidades similares al comando Unix grep
. ¿Cuáles son los beneficios de usar findstr
? Un ejemplo es que está integrado en cualquier sistema operativo (SO) de Windows, no se requiere software adicional.
Para encontrar cadenas específicas en un archivo, sigue estos pasos:
Crea un archivo de texto con tu editor de texto preferido, nómbralo notes.txt y agrega el siguiente contenido al archivo.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
Ahora, abre PowerShell como administrador y ejecuta el siguiente comando para encontrar cadenas (findstr
) según el patrón de búsqueda (”apple"
) en el archivo notes.txt
.
? findstr tiene muchos parámetros que se pueden usar para personalizar la búsqueda. Pero en este tutorial, explorarás algunos de los parámetros más valiosos al buscar cadenas en archivos.

? Tal vez estés buscando cadenas en varios archivos. Si es así, especifica las rutas de los archivos separadas por espacios, como en el siguiente ejemplo:
findstr parameters "pattern" "C:\\path\\to\\file1.txt" "C:\\path\\to\\file2.txt"
Encontrar Cadenas que Coinciden con un Patrón Específico o Literal
Cuando trabajas con archivos de configuración, encontrar cadenas en un patrón específico o literal es crucial, especialmente en la depuración. Afortunadamente, el parámetro /c
le indica al comando findstr
que busque cadenas literales que coincidan con un patrón especificado, incluyendo espacios o caracteres especiales.
Adjuntar el parámetro /c
al comando findstr
resulta útil en situaciones como las siguientes, aunque no se limita a ellas:
- Búsqueda de una frase específica o conjunto de palabras que aparecen en un orden particular.
- Búsqueda de una cadena que contiene espacios o caracteres especiales.
Para ver cómo funciona el parámetro /c
en acción, sigue estos pasos:
1. Ejecuta el comando findstr
a continuación para buscar la cadena literal (/c
) banana cherry
en el archivo *notes.txt*
.
En la salida a continuación, el comando findstr
solo devuelve líneas que contienen la cadena exacta banana cherry
con un espacio entre las dos palabras.
Ten en cuenta que el parámetro /c
distingue entre mayúsculas y minúsculas, por lo que el comando findstr
solo devuelve la cadena con el mismo caso de letra que especificaste. Si alguna de las cadenas en el archivo notes.txt no coincide con el patrón especificado, el comando findstr
devuelve una salida en blanco.

2. A continuación, agrega la siguiente línea al archivo notes.txt y guarda los cambios.
En este punto, debería haber dos líneas en tu archivo notes.txt con la cadena “hello”. Una en minúsculas (hello, world.
) y otra con una ‘H’ en mayúscula (Hello, world.
).
hello, world.
3. Ahora, ejecuta cada comando a continuación para buscar la cadena literal hello, world
o Hello, world
en el archivo notes.txt
.
Observa a continuación que a pesar de tener dos líneas que contienen la cadena ‘hello, world’ en el archivo notes.txt, solo obtienes una línea de cadena.
El parámetro /c
indica al comando findstr
que imprima líneas que contienen la cadena ‘hello, world’ con minúsculas o mayúsculas ‘H’.

4. Por último, ejecuta el comando findstr
a continuación para buscar cadenas que contengan el patrón hello
en el archivo notes.txt
mientras ignora (/i
) el caso de las letras.
Las búsquedas sensibles a mayúsculas y minúsculas funcionan bien si ya conoces el caso real de las letras de la cadena que estás buscando. Pero si deseas ver todas las líneas de cadenas que coinciden con un patrón independientemente del caso de las letras, el parámetro /i
hará el truco.

Encontrar Cadenas Especificadas Dentro de Archivos y Directorios
Además de buscar cadenas específicas en archivos, el comando findstr
te permite buscar cadenas coincidentes dentro de archivos, directorios y subdirectorios.
Supongamos que deseas encontrar todos los archivos en un directorio que tienen una palabra específica en su contenido. Si es así, deja que el parámetro /s
haga el trabajo sucio.
Ejecuta el siguiente comando para buscar (/s
) en el directorio actual y sus subdirectorios (/s
) todos los archivos (*.*
) que contienen la cadena system
, ignorando mayúsculas y minúsculas (-i
).
Ten en cuenta que este comando solo busca archivos que contienen la cadena system
como una palabra completa y no aquellos que son parte de palabras más largas, como sistemático o sistematizar.
La salida a continuación muestra una lista de nombres de archivos, uno por línea, con el nombre de cada archivo que contiene la cadena ‘system’.

Búsqueda de Cadenas Usando el cmdlet Select-String
Hasta ahora, has visto que el comando findstr
funciona excelentemente para encontrar cadenas, pero el cmdlet Select-String
no debe ser pasado por alto. Este cmdlet es un equivalente de grep
en Windows que te permite buscar patrones de texto específicos en archivos y cadenas.
El cmdlet Select-String
está diseñado para eficiencia, te permite buscar rápidamente a través de grandes cantidades de texto y admite expresiones regulares (regexes). A su vez, este cmdlet te permite buscar patrones aún más complejos que findstr
.
Para ver cómo funciona el cmdlet Select-String
, sigue estos pasos:
1. Abre primero el archivo notes.txt, añade las siguientes líneas y guarda los cambios.
Agregar estas líneas es una preparación para demostrar cómo el cmdlet Select-String
maneja las mayúsculas y minúsculas en los siguientes pasos.
Apple
APPLE
ApplE
2. Luego, ejecuta el siguiente comando para buscar la cadena apple
en el archivo notes.txt
.
A continuación, varias líneas contienen la cadena ‘apple’ pero en diferentes casos de letras, ya que el cmdlet Select-String
no distingue entre mayúsculas y minúsculas. Pero lo bueno es que puedes identificar y verificar fácilmente las cadenas coincidentes, ya que están resaltadas.

? Tal vez desees utilizar la coincidencia de cadenas simple en lugar de la coincidencia de regex. Si es así, agrega el parámetro
-SimpleMatch
, como se muestra a continuación, y nunca te preocupes por la sintaxis de regex y los caracteres especiales.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. Ahora, ejecuta el siguiente comando para buscar APPLE
en el archivo notes.txt
con sensibilidad a mayúsculas y minúsculas habilitada (-CaseSensitive
). El parámetro -CaseSensitive
es útil para una búsqueda precisa.
Como puedes ver a continuación, la única coincidencia encontrada tiene el mismo caso de letras que especificaste (APPLE).

4. Por último, ejecuta el siguiente comando utilizando regex para buscar el patrón '\?'
(un signo de interrogación) en todos los archivos de texto (*.txt
) en el directorio $PSHOME\en-US
. Un regex te permite buscar patrones más complejos.
Si el contenido de un archivo tiene un signo de interrogación, el comando devuelve la ruta completa del archivo a la consola, como se muestra a continuación.

Usando ripgrep (rg) como un equivalente de grep en Windows
rg es una utilidad de línea de comandos de código abierto diseñada para buscar rápidamente a través de archivos utilizando patrones de expresiones regulares. Como otras utilidades de línea de comandos, rg tiene muchas opciones y características para personalizar sus búsquedas.
Pero a diferencia de findstr
y el cmdlet Select-String
, rg no está instalado en su sistema operativo Windows de forma predeterminada.
Para usar rg como su equivalente de grep en Windows:
1. Ejecute el siguiente comando de scoop
para instalar
ripgrep
en su sistema. scoop install ripgrep

2. A continuación, ejecute el siguiente comando rg
para verificar la versión instalada de rg.
Como se muestra a continuación, verá el número de versión de rg instalado. En este punto, ahora puede ejecutar comandos rg
para buscar cadenas.

3. Ejecute el siguiente comando rg
para buscar la cadena apple
en el archivo notes.txt
.
La salida muestra cualquier línea en el archivo notes.txt que contenga la cadena apple, como se muestra a continuación.
Note que la salida es similar a la salida del cmdlet Select-String
. Pero en lugar de resaltar, rg
cambia el color de la cadena coincidente y del número de línea para una rápida distinción.

4. Ahora, ejecute el siguiente comando utilizando expresiones regulares para buscar cadenas en el archivo notes.txt
.
El regex a continuación utiliza límites de palabra (`\b`) y le dice a `rg` que busque líneas de cadenas que contengan una palabra que comience con ‘s’ y termine con ‘e’ (`s\w+e`).

Filtrando Búsquedas por Tipo de Archivo Específico
Tal vez tenga una preferencia sobre en qué directorio se encuentra el archivo que está buscando, pero no sobre el nombre del archivo. En tales casos, buscar el contenido del archivo mientras se filtra la búsqueda por tipo de archivo puede ser su mejor opción.
Filtrar la búsqueda a tipos de archivo específicos puede ser útil cuando solo está interesado en buscar tipos de archivos particulares. O cuando desea excluir ciertos tipos de archivos de la búsqueda.
Para filtrar la búsqueda a tipos de archivo específicos, la opción `–type` hará el truco de la siguiente manera:
1. Ejecute el siguiente comando `rg` para buscar la cadena `apple` en todos los archivos de texto (`–type txt`) en el directorio `C:\\myfiles`.
La opción `–type` toma un tipo de archivo como argumento, lo que le indica al comando `rg` que solo busque archivos que coincidan con el tipo de archivo especificado.
La salida a continuación muestra la línea que contiene la cadena ‘apple‘ y el nombre de archivo asociado (notes.txt).

2. A continuación, cree un XML llamado notes.xml y rellene el código a continuación. Este archivo XML es solo una preparación para demostrar cómo funcionan las búsquedas con comodines.
3. Ahora, ejecuta el siguiente comando para buscar la cadena apple
en todos los archivos (*.
). Este comando solo busca archivos txt
y xml
según se especifica con (-g
).
Por defecto, rg
distingue entre mayúsculas y minúsculas. Como resultado, la salida muestra solo la línea que contiene la cadena exacta ‘apple’ y el archivo asociado.

4. Finalmente, ejecuta el siguiente comando, como lo hiciste en el paso tres, para buscar la cadena apple
en todos los archivos (*.
) que tengan la extensión txt
o xml
. Pero esta vez, agrega la opción -i
, que le indica a rg
que ignore las mayúsculas.

Conclusión
A lo largo de este tutorial, has aprendido muchos equivalentes de grep en Windows para buscar cadenas de texto de manera literal y utilizando expresiones regulares. Has desbloqueado el poder de estos equivalentes de grep con una variedad de opciones y parámetros para personalizar la búsqueda y filtrar tipos de archivos específicos.
En este punto, deberías sentirte seguro al depurar problemas, identificar cuestiones y buscar a través de grandes conjuntos de archivos de texto.
Ahora, ¿por qué no poner a prueba tus nuevas habilidades practicando con expresiones regulares y personalizando tus búsquedas?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/