我试图分裂csv文件成较小的CSV文件,这是在CSV文件中列BusinessUnit
的基础上。
到现在为止我已经试过: -
$fullpath = "C:\Batch\Output Folder\ErroreportforAllregions.csv"
$path = Split-Path $fullpath -parent
$data = Import-CSV -Path $fullpath -Header BusinessUnit,Date,Time,PolicyNum
foreach ($group in $data | Group BusinessUnit){
$data | Where-Object {$_.species -eq $group.name} |
ConvertTo-Csv -NoTypeInformation |
foreach {$_.Replace('"','')}|
Out-File "$path\$($group.name).csv"
}
但在这行(数据)不小的CSV文件来。请指引我到哪里,我做了错误。
我在大csv文件数据: -
BusinessUnit serialno
Eastern Region 1
Ottawa 2
India 3
输出应该是
假设你的大CSV实际上看起来是这样的:
"BusinessUnit","Date","Time","PolicyNum","serialno"
"Eastern Region","2019-02-04","11:09:45","123","1"
"Eastern Region","2019-02-03","10:09:45","123","1"
"Ottawa","2019-02-04","11:09:45","123","1"
"India","2019-02-04","11:09:45","123","1"
那么这个应该这样做:
$fullpath = "C:\Batch\Output Folder\ErroreportforAllregions.csv"
$path = Split-Path $fullpath -parent
$data = Import-CSV -Path $fullpath
$data | Group-Object -Property BusinessUnit | ForEach-Object {
$file = Join-Path -Path $path -ChildPath ($_.Name + '.csv')
$_.Group | Export-Csv -Path $file -NoTypeInformation
}
使用上面的数据,将创建三个CSV文件中称为Eastern Region.csv
,Ottawa.csv
和India.csv
。
东方Region.csv
"BusinessUnit","Date","Time","PolicyNum","serialno"
"Eastern Region","2019-02-04","11:09:45","123","1"
"Eastern Region","2019-02-03","10:09:45","123","1"
Ottawa.csv
"BusinessUnit","Date","Time","PolicyNum","serialno"
"Ottawa","2019-02-04","11:09:45","123","1"
India.csv
"BusinessUnit","Date","Time","PolicyNum","serialno"
"India","2019-02-04","11:09:45","123","1"
希望这可以帮助