Remove path from output

Rob picture Rob · Jul 5, 2015 · Viewed 17.8k times · Source

Using the following Select-String command in PowerShell:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches > E:\Documents\combined3.txt

creates an output file with each line starting with the path and file name followed by a colon. For example:

E:\Documents\combined0.txt:255:255.255.255 - - [31/Dec/2014:04:15:16 -0800] "GET /ccsetup.exe HTTP/1.1" 301 451 "-" "Mozilla/5.0 (compatible; SearchmetricsBot; http://www.xxxx.com/en/xxxx-bot/)"

How do I get rid of the output file path name, output file name and colon in the results?

Answer

Keith Hill picture Keith Hill · Jul 5, 2015

Select-String outputs an object from which you can pick off properties that you want. The Get-Member command will show you these object members if you pipe into it e.g.:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches  | 
    Get-Member

One of those properties is Line. So try it this way:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches | 
    Foreach {$_.Line} > E:\Documents\combined3.txt