Easy methods to grep Search Textual content From PowerShell


Powershell logo

grep is a robust textual content looking out utility on Linux, but it surely isn’t obtainable on Home windows. Whereas there are third occasion ports and options, PowerShell presents built-in equivalents to grep that may do the identical job in your scripts.

Utilizing findstr to grep Search In PowerShell

There are a pair totally different search utilities in PowerShell, every with their very own strengths. The only is findstr, which is a local home windows executable. This works nicely to exchange grep for easy search operations on the command line. For instance, you may pipe the output of ls to it to seek out matches.

ls | findstr "foo"

You may as well seek for a number of phrases at a time, use wildcards to match something, and use the /R flag to cross primary common expressions.

ls | findstr /R ba[a-z].txt

Although, if you wish to explicitly search together with an area, you’ll want to make use of the /C: flag:

ls | findstr /C:"foo"

If you happen to’re used to the Linux command line, and don’t need to keep in mind a brand new command, you may configure “grep” to be an alias to findstr, which can allow you to preserve your muscle reminiscence.

new-alias grep findstr

Utilizing Choose-String to grep Search in PowerShell

The opposite native methodology PowerShell presents is the Choose-String cmdlet, which does quite a lot of the identical issues as findstr, however is a PowerShell cmdlet as a substitute of a Home windows executable.

This implies it’ll work higher in PowerShell scripts, and most notably returns its output as an object, which could be pretty-printed by PowerShell. It’s additionally simpler to make use of on the command line, as PowerShell’s tab completion will work with it.

It really works similar to findstr, and might take wildcards and common expressions as nicely.

ls | Choose-String foo
ls | Choose-String -Sample <regexPattern>

You should use Choose-String to grep textual content inside information, by passing it a -Path argument. You may as well use it with enter handed from different cmdlets like Get-Content material.

Choose-String -Path ".foo.txt" -Sample ba.*

If you happen to’d like to make use of it on the command line, you too can alias it to “grep” for fast entry.

remove-alias grep
new-alias grep Choose-String



Please enter your comment!
Please enter your name here

Share post:



More like this

Oil Turns Decrease as Market Fails to Shake Off Put up OPEC+ Gloom

(Bloomberg) -- Oil fell — after failing to...

Flames’ Huberdeau hits new low level with third-period benching

CALGARY — Amidst a third-period comeback that gave...

Seth Meyers Cannot Consider This Trump Trial Stunt

Seth Meyers on Tuesday mocked former President Donald...