所以我正在考虑使用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并没有被应用。
对不起,如果有更好的方法来格式化代码仍然是新的
答案 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"