2016-07-21 88 views
0

後,我GCI我得到了以下的輸出:替換字符串中多行

C:\mine\this is the filename I want to keep -blah blah.csv:11:"Windows User","BrftD","Bledaf","Internal user" 
C:\mine\it is a different filename I want to keep -bleh blih.csv:12:"Windows User","BrftD","Bledaf","Internal user" 

我需要更換之前「\」後更換任何東西「 - 」,直到「:」用'「和」 」,」這樣的輸出是

"this is the filename I want to keep","Windows User","BrftD","Bledaf","Internal user" 
"it is a different filename I want to keep","Windows User","BrftD","Bledaf","Internal user" 

的腳本是:

gci *.csv | Select-String -pattern '"Windows User"'|Set-Content csvdatacol.csv 
Get-Content csvdatacol.csv 
+0

你確定這是*一個*多行字符串嗎? 'Get-ChildItem'(別名'gci')不會產生像這樣格式化的輸出 - 你能準確告訴我們你運行的是什麼命令嗎? –

+0

我編輯了這篇文章:) – Atermon

+0

分配輸出到一個變量,而不是做Set-Content/Get-Content。然後使用Select-Object來獲取文件名和行 –

回答

0

這應該爲你

工作
Get-ChildItem *.csv | 
    Select-String -Pattern '"Windows User"' | 
    % { '"{0}",{1}' -f ($_.FileName -replace '-.*', '').TrimEnd(), $_.Line }