从输出中删除路径

Rob*_*Rob 6 powershell select-string

Select-String在PowerShell中使用以下命令:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches > E:\Documents\combined3.txt
Run Code Online (Sandbox Code Playgroud)

创建一个输出文件,每行以路径和文件名开头,后跟冒号.例如:

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/)"
Run Code Online (Sandbox Code Playgroud)

如何在结果中删除输出文件路径名,输出文件名和冒号?

Kei*_*ill 17

Select-String输出一个对象,您可以从中选择所需的属性.Get-Member如果你输入它,该命令将显示这些对象成员,例如:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches  | 
    Get-Member
Run Code Online (Sandbox Code Playgroud)

其中一个属性是Line.所以试试这样:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches | 
    Foreach {$_.Line} > E:\Documents\combined3.txt
Run Code Online (Sandbox Code Playgroud)


Aut*_*ick 5

通常,powershell将事物作为对象返回,默认情况下,选择字符串返回多个属性,包括LineNumber,Filename等;您想要输入数据的那个叫做“行”。因此,不需要任何花哨的东西,只需将其通过管道发送到“选择行”即可。

例如:

Select-String "bla" filename.txt | select line
Run Code Online (Sandbox Code Playgroud)

或在您的示例中:

Select-String -Path E:\Documents\combined0.txt -Pattern "GET /ccsetup\.exe" -AllMatches | select line | out-file E:\Documents\combined3.txt
Run Code Online (Sandbox Code Playgroud)