Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用powershell筛选CSV文件_Powershell_Csv - Fatal编程技术网

使用powershell筛选CSV文件

使用powershell筛选CSV文件,powershell,csv,Powershell,Csv,我是新来的powershell。。。我正在尝试根据特定值过滤我的扫描结果(.csv),我可以对简单的csv文件进行过滤。但是,自动扫描结果似乎是嵌套的 我需要过滤列“F”,其中的值是“Vuln”(添加图像),并写入一个新的CSV文件 谁能给我一些线索吗 我尝试了一些简单的句子,比如:(但是我没有得到任何结果) 导入CSV-Path“C:\test.CSV”|其中对象{$\类型-ey“Vuln”} 您大部分时间都在那里,问题似乎来自.CSV文件 坦率地说,它不是一个真正有效的csv文件,因为它不

我是新来的powershell。。。我正在尝试根据特定值过滤我的扫描结果(.csv),我可以对简单的csv文件进行过滤。但是,自动扫描结果似乎是嵌套的

我需要过滤列“F”,其中的值是“Vuln”(添加图像),并写入一个新的CSV文件

谁能给我一些线索吗

我尝试了一些简单的句子,比如:(但是我没有得到任何结果)

导入CSV-Path“C:\test.CSV”|其中对象{$\类型-ey“Vuln”}



您大部分时间都在那里,问题似乎来自
.CSV
文件

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

但是,它看起来像是从第6行开始的一个真正的.CSV,所以我们需要做的是跳过文件的前几行,然后尝试从.CSV转换。我制作了自己的.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
然后使用以下命令向下筛选到
类型的项目
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
参数以匹配

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

$crap = Get-Content C:\temp\input.csv | Select-Object -First 5
$OnlyVulns = Get-Content C:\temp\input.csv | Select-Object -Skip 5 | ConvertFrom-Csv | Where-Object Type -eq 'Vuln'

$CrapAndOnlyVulns = $crap + $OnlyVulns
$CrapAndOnlyVulns > C:\pathTo\NewFile.csv
这是最后的脚本:)

$import=获取内容。\Scan.csv
$import1=$import |选择对象-前7个 $import | Select Object-Skip 7 | ConvertFrom Csv |其中Object{$|Type-eq“Vuln”}| Export Csv Output1.Csv-NoClobber-NoTypeInformation
$import1+(获取内容输出1.csv)|设置内容输出2.csv


-这也适用于所有类型的样本数据。。。而且您的代码中有一个输入错误
-ey
->
-eq
,如果您的数据无效,您就不能指望Powershell优雅地处理它。您必须转换源数据以满足您的需要。谢谢,伙计。。。它成功了…我可以对数据进行排序。。。。但是,新创建的CSV(输出)不包含跳过的数据。。。。我们有没有办法在处理后也将其包括在内?只是检查一下可能性。谢谢。。它工作了,但是输出csv被置乱了(第二部分,合并成单行和列),我做了一些修改。。现在它是完美的。。。非常感谢……)