Página principal Sobre mi Premios recibidos Links de Interés Contacto Blogs de referencia

Translate

domingo, 1 de julio de 2018

Textual description of firstImageUrl

Windows CMD: Buscar palabras en el interior de los archivos de texto (Find).

En el laboratorio de hoy, vamos a ver el funcionamiento del comando Find. Find es un comando muy útil, ya que nos permite realizar búsquedas de cadenas de caracteres en el interior de uno o más archivos de texto que se encuentren en un mismo directorio. 

También, podéis acceder al canal de YouTube de Pantallazos.es, donde encontrareis un vídeo tutorial en el que usaremos el comando Find para realizar búsquedas de cadenas de caracteres en el interior de unos archivos de LOG que se encuentren en un mismo directorio. 


Podéis acceder y suscribiros al canal de Youtube de Pantallazos.es en el enlace que mostramos a continuación:

No es necesario comentar que, para un administrador de sistemas, es muy interesante poder buscar cadenas de texto como por ejemplo, "Error" o "Failed" en el interior de los archivos de *.LOG de cualquiera de los programas que realizamos mantenimiento.

Los directorios con contienen archivos de LOG suelen contener un gran numero de archivos de texto, y, poder buscar cadenas de caracteres dentro de este gran numero archivos nos minimizará en gran medida el tiempo de trabajo cuando busquemos algún dato.

En nuestro laboratorio, disponemos varios archivos LOG con datos en su interior y buscaremos en el interior de estos archivos la cadena de caracteres "failed".

En primer lugar, construiremos el comando para que busque la cadena "failed" únicamente en uno de nuestros archivos LOG. Escribiremos Find y, acto seguido, la cadena de caracteres que queremos buscar en el interior del archivo. En nuestro laboratorio será la palabra "failed", seguidamente, escribiremos la ruta completa donde está ubicado el archivo y el nombre del fichero LOG seleccionado.

find "failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\CONNECTLOG20180620-2.log"

La respuesta de nuestra construcción será que no ha podido encontrar ninguna linea con la cadena de caracteres "failed", seguidamente, probaremos de escribir el mismo comando que hemos ejecutado anteriormente pero esta vez con la cadena de caracteres "Failed" con la letra F inicial en mayúsculas.

En esta ocasión, el comando nos devolverá la linea donde se encuentra la palabra "Failed" con la letra F en mayúsculas.

find "Failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\CONNECTLOG20180620-2.log"

Find es un comando que discrimina entre mayúsculas y minúsculas, para evitar esta discriminación incluiremos en nuestra construcción el modificador /i, repetiremos la ejecución del comando con la la cadena de caracteres "failed" en minúsculas pero usando el modificador /i.

Descubriremos que nos mostrará, igual que en el caso anterior, la linea donde se encuentra la palabra "Failed" con la letra F en mayúsculas.

find /i "failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\CONNECTLOG20180620-2.log"

Si solo hay una única cadena de caracteres "Failed" en nuestro archivo LOG hasta este punto tenemos suficiente, el comando Find nos muestra la linea completa donde se encuentra el error.

Windows CMD: Buscar palabras en el interior de los archivos de texto (Find).

Un problema que podemos tener, es cuando encontramos gran cantidad de coincidencias que contengan la cadena de caracteres que estamos buscando.

Si, en lugar de especificar un único archivo LOG, buscamos en todos los archivos con la extensión *.LOG que contenga el directorio, la gran cantidad de cadenas que contengan la palabra "Failed" que vamos a encontrar puede hacer impracticable el uso del comando.

find /i "failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\*.log"

Para poder aprovechar Find en estas ocasiones, usaremos el modificador /C.

El modificador /C, no mostrará por pantalla las lineas completas que encuentre durante la ejecución de Find, sólo contará en el interior de cada uno de los archivos LOG el número de líneas que contienen la cadena especificada.

Acto seguido, listará la ruta completa donde están ubicados cada uno de los archivos con coincidencias y el nombre de cada uno de los ficheros LOG junto con la totalidad de coincidencias encontradas para cada uno de los archivos examinados.

find /c /i "failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\*.log"


Otro modificador que podemos usar cuando tenemos pocas coincidencias durante la búsqueda de cadenas de caracteres es /N, nos mostrará el número de la linea donde se encuentra la coincidencia en el interior del archivo.

find /i /N "failed" "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\Connectivity\Delivery\CONNECTLOG20180620-2.log"


Existen más modificadores, menos usados, que podéis consultar en la ayuda del propio comando.

Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\xavic>find /?
Busca una cadena de texto en uno o más archivos.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "cadena" [[unidad:][ruta]archivo[ ...]]

  /V          Muestra todas las líneas que no tengan la cadena especificada.
  /C          Muestra sólo el número de líneas que contienen la cadena.
  /N          Muestra el número de línea de cada línea.
  /I          Omite mayúsculas/minúsculas al buscar una cadena.
  /OFF[LINE]  No omite archivos con el atributo "sin conexión" establecido.
  "cadena"    Especifica el texto que se desea buscar.
  [unidad:][ruta]archivo
              Especifica el o los archivos a buscar.

Si no se especifica una ruta, FIND busca el texto que se escriba en el símbolo
del sistema o que se canalice desde otro comando.

2 comentarios: