2 min read | by Jordi Prats
On a Windows server there's also a way of fitering other command's output just like you would do using grep on a Linux: You can do it using find and findstr
We can filter the output of another command like this:
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
(...)
But we can also ise it to find a string inside files:
C:\>find "hello" *
---------- TEST1.TXT
hello
---------- TEST2.TXT
---------- TEST3.TXT
hello world
It has some options quite similar to grep:
C:>netstat -ano | find "LISTEN" /c
24
With findstr we can also use regular expresions:
C:\>tasklist | findstr "[cC]onsole"
winlogon.exe 892 Console 1 7.388 KB
(...)
If we try to search for a string containing spaces, it won't work straight away since it's going to search for the words separately:
C:\Users\Jay\Desktop\test>findstr "hello world" *
test1.txt:hello
test2.txt:world
test3.txt:hello world
To be able to search for the entire string we will have to use the option /c like so:
C:\>findstr /c:"hello world" *
test3.txt:hello world
Posted on 09/04/2021