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