Para los no iniciados, una herramienta de búsqueda de patrones como findtr puede parecer inútil. Pero cuando se trata de archivos de registro generados por el sistema o salidas de líneas de comando que contienen cientos de líneas de texto, findtr es la herramienta que necesita.
Los usuarios de un sistema operativo Linux ya estarían familiarizados con la increíble utilidad del comando Grep, y findtr cumple una función similar en Microsoft Windows. Puede combinarlo con otros comandos usando canalizaciones o simplemente ejecutarlo directamente para analizar varios archivos de texto. Veamos cómo funciona findtr con algunos ejemplos.
Usando el comando Findstr
La sintaxis básica es simple: findtr
findstr SFC ejemplo1.txt
Este comando buscará y generará todas las líneas que contengan la cadena de búsqueda SFC. Tenga en cuenta que, de forma predeterminada, findtr distingue entre mayúsculas y minúsculas, por lo que cualquier mención de SFC no coincidirá.
Parámetros
Puedes personalizar aún más cómo funciona findtr incluyendo parámetros opcionales. Los modificadores como /B o /I modifican el comportamiento de findtr, imponiendo condiciones adicionales en la búsqueda. Por ejemplo:
findstr /I SFC ejemplo1.txt
Incluir /I como parámetro hace que la búsqueda no distinga entre mayúsculas y minúsculas, lo que permite que todas las menciones del término coincidan, independientemente de su uso en mayúsculas. Puede encontrar la lista de todos los parámetros de findtr en documentos oficiales de Microsoft.
Patrones opcionales
Los parámetros no son la única forma de personalizar findtr. Encerrar la
findstr “SFC DISM” ejemplo1.txt
Lo anterior devolverá líneas coincidentes que contengan cualquiera de los términos. Esto lo hace útil cuando se busca una mención para un artículo con diferentes nombres.
Expresiones regulares
Findstr es capaz de buscar en varios archivos. Cambiar
findstr SFC *.txt
El uso del carácter comodín hace coincidir la expresión regular con todos los archivos de texto en el directorio actual y sus subdirectorios. Los resultados también están segregados por nombres de archivos, lo que le permite ver qué línea se originó en qué archivo.
Tuberías
Como la mayoría de los comandos cmd, findstr también se puede utilizar en la salida de otros comandos. Simplemente agregue una tubería después del final del comando de destino e invoque findtr sin una
directorio | encontrarcadena.txt
Esto ejecuta una búsqueda findtr en la salida del comando dir, devolviendo la lista de archivos que termina en .txt. Por supuesto, este ejemplo en particular es inútil en la práctica ya que dir ya puede localizar archivos del mismo tipo con una expresión regular.
También se puede tomar la ruta más larga de redirigir la salida a un archivo de texto y luego usar findtr en el archivo de texto, pero es más fácil eliminar al intermediario.
Aplicaciones de Findstr en Windows
Los usos obvios de findtr son evidentes sólo por la sintaxis. Puede buscar archivos de texto con una cadena de texto específica o ver si una cadena en particular está contenida en un archivo.
Esto, si bien es teóricamente útil, rara vez se utiliza fuera de casos excepcionales. En la era de los servicios en la nube como Google Docs, la mayoría de las personas ya no tienen muchos archivos de texto.
Las aplicaciones reales de findtr son un poco más sutiles e implican resultados más potentes. Éstos son algunos de los ejemplos más interesantes.
Encontrar tipos específicos de archivos
El comando dir ya incluye la opción de buscar nombres de archivos usando expresiones regulares. Pero con findtr, puedes buscar archivos que compartan otros atributos, como la hora o la fecha de creación.
Supongamos que se produjo un error a las 06:43 p. m. y desea localizar todos los archivos de registro creados en ese momento. Solo con el comando dir, tendrá que examinar manualmente los resultados u obtener todos los archivos de registro y compararlos. Usando findtr, esto se convierte en un comando simple.
directorio | findtr 06:43
Puedes probar el mismo truco para buscar archivos creados en una fecha concreta u obtener una lista de directorios.
directorio | encontrardir DIR
Filtrado de información de red con Netstat.
Netstat es un comando útil de Windows que le brinda toda la información sobre las conexiones de red de su computadora; demasiada información, que es donde entra en juego findstr.
Conectar la salida de netstat a findtr le permite buscar conexiones con propiedades específicas. Por ejemplo, así es como puedes obtener una lista de todas las conexiones establecidas.
netstat | findtr ESTABLECIDO
Este truco es útil para diagnosticar problemas de red. Incluso puedes usar findtr con un PID de aplicación para buscar todas las conexiones abiertas por un proceso en particular.
netstat -o | encontrarstr 13120
Obtención de direcciones IP específicas
El comando ipconfig le permite ver detalles de todas las interfaces de red de los sistemas, incluidas las direcciones IP. Puedes usar findtr para extraer un tipo particular de dirección IP sin tener que desplazarte por todo el proceso.
ipconfig | findtr Temporal
Puedes ampliar este método para obtener cualquier información de ipconfig, desde las máscaras de subred hasta las direcciones de puerta de enlace.
Análisis de archivos de script
Cualquiera que sea el lenguaje de programación en el que codifique, los archivos de script son, en última instancia, solo texto. Esto significa que puedes usar findtr para analizar scripts y recuperar secciones específicas sin tener que revisar todo el código.
Digamos que queremos ver cómo se ha utilizado la declaración if en un script en particular. Podemos usar el siguiente comando:
findstr si script.ahk
Esto no solo mostrará las líneas que usan la instrucción if, sino que también nos mostrará las expresiones utilizadas. También puede incluir el parámetro /N para mostrar los números de línea, lo cual es muy útil para archivos de script.
findstr /N si script.ahk
¿Vale la pena usar Findstr?
La principal dificultad al navegar por la interfaz de línea de comandos es la cantidad de texto que uno necesita examinar. Findstr es una herramienta esencial para extraer información útil y filtrar basura.
Dado que todos los comandos de terminal dan una salida basada en texto, siempre se puede utilizar findtr para localizar los datos relevantes. Desde solución de problemas de red hasta encontrar los archivos correctos, cada acción se vuelve más eficiente con findtr..
Incluso fuera de su sinergia con otros comandos, findtr es útil por su capacidad para recorrer el contenido de archivos de texto. Puede encontrar errores específicos en archivos de registro generados por máquina o recuperar secciones de código en un script complejo.
En resumen, findtr es una herramienta indispensable en el arsenal de cualquier usuario avanzado de Windows, especialmente uno que desee familiarizarse con la interfaz de línea de comandos.
.