使用Powershell过滤CSV文件

时间:2019-02-21 14:26:03

标签: powershell csv

我是Powershell的新手...我正在尝试根据特定值过滤我的扫描结果(.csv)之一,我能够对简单的CSV文件执行此操作。但是自动扫描结果看起来像是嵌套的。

我需要过滤值为“ Vuln”(添加了图像)的“ F”列,并将其写入新的CSV文件。

任何人都可以给我一些线索。

我尝试了以下简单的行:(但没有得到任何结果)

  

导入CSV-路径“ C:\ test.csv” |哪里对象{$ _。Type -ey“ Vuln”}


Sample CSV file format

2 个答案:

答案 0 :(得分:1)

您几乎在那儿,看来问题出在该String encoded = toBase64(image, "TIFF"); 文件中。

坦率地说,它不是真正有效的csv文件,因为它不仅是简单的逗号分隔值表,而是具有多种数据类型。

但是,看起来像是逼真的.CSV从第6行开始,所以我们需要做的是跳过文件的前几行,然后然后尝试从.csv。我像您一样制作了自己的.csv

enter image description here

我可以读取文件,并跳过前五行,如下所示:

.CSV

然后使用以下命令仅过滤Get-Content C:\temp\input.csv | Select-Object -Skip 5 | ConvertFrom-Csv HostName OS Type -------- -- ---- SomePC123 WinXp Vuln SomePC234 Win7 Vuln SomePc345 Win10 Patched Type的项目:

Vuln

要使用此功能,只需递减行数,直到电子表格在您的Get-Content C:\temp\input.csv | Select-Object -Skip 5 | ConvertFrom-Csv | Where-Object Type -eq 'Vuln' HostName OS Type -------- -- ---- SomePC123 WinXp Vuln SomePC234 Win7 Vuln 中开始并编辑.CSV参数即可。

如果要保留标题信息,可以使用以下方法:

-Skip

答案 1 :(得分:0)

这是最后的脚本:)

  

$ import =获取内容。\ Scan.csv
  $ import1 = $ import |选择对象-前7   $ import |选择对象-跳过7 | ConvertFrom-Csv |哪里对象{$ _。Type -eq“ Vuln”} | Export-Csv Output1.csv -NoClobber -NoTypeInformation
  $ import1 +(获取内容Output1.csv)|设置内容Output2.csv