打破CSV文件

时间:2014-09-24 20:03:33

标签: powershell csv

所以我正在考虑使用Powershell分解CSV。 CSV由|提交这不是问题,我希望在保留原始版本的同时将其分解为多个较小的csv。中断将基于包含值列表之一的单个列中的值发生 到目前为止我所做的是导入csv(由|分隔)然后

foreach($line in $csv)  {  
if($columnValue -like $target1) {  
export-csv filename1.csv -Delimiter `| $line -append)} 
elseif($columnValue -like $target2) { 
export-csv filename2.csv -Delimiter `| $line -append)}  

但是我认为它没有正确导出,我不希望有引号(是的我知道这是标准但我不想要它们)另外我希望应用原始csv的标题对孩子的csvs并没有被应用。

对不起,如果有更好的方法来格式化代码仍然是新的

2 个答案:

答案 0 :(得分:0)

这里是我建议Switch cmdlet非常棒的地方。它将某些内容与多个潜在匹配进行比较,并在适当的时候执行这些匹配。

Switch($csv){
    {$_.column -match $target1} {$_ | Export-CSV filename1.csv -append -delimiter '|'}
    {$_.column -match $target2} {$_ | Export-CSV filename2.csv -append -delimiter '|'}
    {$_.column -match $target3} {$_ | Export-CSV filename3.csv -append -delimiter '|'}
}

答案 1 :(得分:0)

$data = import-csv $csvfile
$data | ?{$_.val -eq $criteria1} | export-csv -path "File1.csv"
$data | ?{$_.val -eq $criteria2} | export-csv -path "File2.csv"