systemadmin.es > Utilidades > find y findstr: El grep de Windows

find y findstr: El grep de Windows

Al ejecutar comandos en un equipo Windows seguro que alguna vez nos hemos visto con la necesidad de filtrar su salida o tener que buscar una cadena en varios ficheros. Vamos a ver la herramienta find y findstr:

Mediante find podemos filtrar la salida de un comando:

C:\>netstat -ano | find "LISTEN"
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       816
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:902            0.0.0.0:0              LISTENING       2892
(...)

O también buscar una cadena dentro de ficheros:

C:\>find "hello" *

---------- TEST1.TXT
hello

---------- TEST2.TXT

---------- TEST3.TXT
hello world

Tiene algunas opciones similares a grep:

  • Opción /v: Salida inversa, las lineas que no contienen el string
  • Opción /i: Para ignorar si se trata de mayúsculas o minúsculas
  • Opción /c: Contar el número de apariciones de la cadena:
    C:>netstat -ano | find "LISTEN" /c
    24
    

Tenemos también la herramienta findstr que además admite expresiones regulares:

C:\>tasklist | findstr "[cC]onsole"
winlogon.exe                   892 Console                    1     7.388 KB
(...)

Algo bastante molesto es que si se indica una cadena con espacios, lo interpreta como varias cadenas a buscar:

C:\Users\Jay\Desktop\test>findstr "hello world" *
test1.txt:hellotest2.txt:worldtest3.txt:hello world

Por lo que si queremos buscar una cadena con espacios deberemos indicarlo con la opción /c:

C:\>findstr /c:"hello world" *
test3.txt:hello world

One comment to “find y findstr: El grep de Windows”

  1. Muy interesante. Anotado.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>