簡體   English   中英

使用 Powershell 從包含特定單詞的 CSV 中刪除一行?

[英]Using Powershell to strip a row from a CSV that contains a specific word?

以下是我的 CSV 文件中的一些示例行。

"ComputerName","Name","Publisher","InstallDate","EstimatedSize","Version","Wow6432Node"
"pcnumber1","Service Pack 1 for Microsoft Office 2013 (KB2850036) 32-Bit Edition","Microsoft P",,"0",,"True"
"pcnumber1","CCleaner","Piriform",,"0","5.01",

原始腳本從指定的計算機中提取有關已安裝軟件的大量信息,並將其輸出為 CSV 格式。 我想獲取該 CSV 文件並刪除所有包含“Microsoft P”的行。 我已經找到了如何從字符串中刪除特定單詞、如何查找和替換等。但是我很難找到這個特定的函數。

您可以使用 Where-Object 導入、選擇所有不包含“Microsoft P”的元素,然后導出:

Import-Csv test.csv | where {$_.Publisher -ne "Microsoft P"} | Export-Csv New.csv -notypeinfo

您可以按照 Mark FINDSTR建議使用FINDSTR 只需指出它是帶有/C的文字搜索字符串。

FINDSTR /V /C:"Microsoft P" SomeFile.CSV > NewFile.CSV

或者,如果您需要 PowerShell 解決方案,您可以忽略它是 CSV 的事實,而將其視為文本文件。 那么你可以:

Get-Content C:\Path\To\File.csv | Where{$_ -notmatch "Microsoft P"} | Out-File C:\Path\To\NewFile.csv

您可以使用多個字符串

FINDSTR /V /C:"Microsoft P" /C:"Linux R" /C:"Whatever W" SomeFile.CSV > NewFile.CSV

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM