2017-08-24 47 views
0

試圖找出如何過濾特定CSV項目。過濾CSV回車

CSV內容:

ComputerName,Results 
computerA  ," KB00000 is not installed 
c:\SomeTestFile Version is 2 
c:\SomeTestFile Version is 11.0" 
ComputerB ,%windir%\somefile.exe is Version 1.2 

我需要它在第二列基於所述回車第一過濾並隨後篩選不同的參數,如「是version10」或「KB00000丟失」了。

在CSV擬輸出:

ComputerName,Results 
computerA ,c:\SomeTestFile Version is 2 
computerA ,c:\SomeTestFile Version is 11.0 
ComputerB ,%windir%\somefile.exe is Version 1.2 

有一個編碼塊。我可以導入文件,但堅持過濾。

$CSV = Import-Csv File.csv 
+1

您的示例內容是CSV的實際原始內容(在文本編輯器中打開時)? –

+0

我鍵入它在這裏,但如果你把它放在CSV它會是什麼樣子: 計算機名,結果 computerA,」 KB00000沒有安裝 C:\ SomeTestFile版本是2 C:\ SomeTestFile版本是11.0" ComputerB,%WINDIR%\ somefile.exe是1.2版 – user2542412

+1

請[編輯]你的問題和複製/粘貼文本。 –

回答

0

與您指定csv

這個腳本:

## Q:\Test\2017\08\24\SO_45870618.ps1 
$FileIn = '.\FileIn.Csv' 
$FileOut = '.\FileOut.Csv' 

$Csv = Import-Csv $FileIn 
$Csv 

$CsvNew = ForEach ($Row in $Csv) { 
    If (!($Row.ComputerName)){ 
     If ($Last) {$Row.ComputerName = $Last} 
    } 
    $Last = $Row.ComputerName 
    ForEach ($line in ($Row.Results -Split('\r?\n'))){ 
     If ($line -NotMatch '^\s*KB\d+\s+is'){ 
      [PSCustomObject]@{ComputerName = $Last.Trim() 
           Results = $line} 
     } 
    } 
} 
"------------" 
$CsvNew 
$CsvNew | Export-Csv $FileOut -NoTypeInformation 

都會有這樣的輸出:

> Q:\Test\2017\08\24\SO_45870618.ps1 

ComputerName Results 
------------ ------- 
computerA  KB00000 is not installed ... 
ComputerB %windir%\somefile.exe is Version 1.2 
------------ 
computerA c:\SomeTestFile Version is 2 
computerA c:\SomeTestFile Version is 11.0 
ComputerB %windir%\somefile.exe is Version 1.2 

所得FileOut.csv:

> gc .\FileOut.Csv 
"ComputerName","Results" 
"computerA","c:\SomeTestFile Version is 2" 
"computerA","c:\SomeTestFile Version is 11.0" 
"ComputerB","%windir%\somefile.exe is Version 1.2" 
+0

不幸的是我沒有得到相同的輸出。它並沒有刪除ComputerA的結果中的回車。 GC C:\ TEMP \ FileOut.csv 「計算機名」, 「結果」 「computerA」, 「KB00000未安裝 C:\ SomeTestFile版是2 C:\ SomeTestFile版是11.0" 」 ComputerB 」, 「%WINDIR%\ somefile.exe是1.2版本」 – user2542412

+0

你** **沒注意到我的'提供您的CSV看起來like'?請[編輯](https://stackoverflow.com/posts/45870618/edit)您的問題,以包含您的真正csv。不要置評論中。 – LotPings

+0

有問題的更新CSV並直接從記事本發佈。謝謝 – user2542412