由于我是 Powershell 新手,因此寻求最佳实践方面的帮助,
我有一个 csv 文件,我想过滤掉 csv 中的每一行,除了包含“未安装”的行
然后,我想根据包含计算机列表的单独 csv 文件过滤这些结果,并排除包含匹配项的任何行。
任何帮助或起点将不胜感激!
最佳答案
对于第一部分,您可以使用 Select-String -Notmatch ...
例如。:
$file = "data.csv"
$csv = Get-Content $file
$csv | Select-String -Notmatch 'Not Installed' | Out-File $file -Enc ascii
如果您的 CSV 文件恰好是 Unicode,则删除“-Enc ascii”部分,因为 Out-File 的默认值是 Unicode。至于你问题的第二部分,你需要更具体一点。但是,您应该查看有关 Import-Csv 和 Export-Csv 的帮助:
man Import-Csv -full
man Export-Csv -full
关于Powershell 过滤器 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028787/