Я хочу объединить два CSV-файла, которые имеют один и тот же заголовок в один файл CSV. У меня есть два таких файла, как показано ниже, т.е. DevData.csv
и ProdData.csv
с таким же cfname
и разные ID
секСлить два файла CSV
ID cfname -------------------- ----------------------------------- 10201 Risk ID 10202 Issue ID 10203 Dependency ID 10204 Server ID 10205 Parent Application ID 10206 Application Service ID 10207 Application Supportability 10208 Application Compatibility 10300 Application Status 10301 Contact ID Type 2 10302 Contact ID Type 3 10303 Contact ID Type 4 10304 Business Service Manager 10308 Server Location Name: 10309 Rack Position: 10310 Rack Number: 10311 Data Centre 10312 Server Group (14 rows affected)
Я хочу создать новый CSV в следующем формате:
DevID ProdID cfname -------------------- ------ ----------------------------------- 10201 201 Risk ID 10202 202 Issue ID 10203 203 Dependency ID 10204 204 Server ID 10205 205 Parent Application ID 10206 206 Application Service ID 10207 207 Application Supportability 10208 208 Application Compatibility 10300 209 Application Status 10301 210 Contact ID Type 2 10302 211 Contact ID Type 3 10303 212 Contact ID Type 4 10304 213 Business Service Manager 10308 214 Server Location Name:
Ниже приведен мой текущий код , но он экспортирует данные первого файла и под ним данные следующего файла.
function Merge-CSVFiles {
[cmdletbinding()]
param(
[string[]]$CSVFiles
)
$Output = @();
foreach ($CSV in $CSVFiles) {
if (Test-Path $CSV) {
$FileName = [System.IO.Path]::GetFileName($CSV)
$temp = Import-CSV -Path $CSV |
select ID, cfname, ID, cfname, @{Expression={$FileName}}
$Output += $temp
} else {
Write-Warning "$CSV : No such file found"
}
}
$Output | Export-Csv -Path $OutputFile -NoTypeInformation
Write-Output "$OutputFile successfully created"
}
Merge-CSVFiles -CSVFiles "C:\Users\ECSAdmin\Desktop\Proddata.csv", "C:\Users\ECSAdmin\Desktop\Devdata.csv" -OutputFile "C:\Users\ECSAdmin\Desktop\Mergedata.csv"
"* два файла csv, которые имеют одинаковый заголовок *" - но 'ID, cfname' и' DevID, ProdID, cfname' не совпадают? – TessellatingHeckler
DevID и ProdID будут представлены в выходном файле CSV. Я выполнил тот же запрос в разработке (создает Devdata.csv) и production (создает Proddata.csv) db, которые создают одинаковый вывод с другим ID.Также я хочу объединить эти два файла с ProdID, DevID и cfname в качестве заголовков в конечном выходном файле csv. – Abhaya
Вам нужно добавить заголовок. 'Import-CSV -path ".csv" -header DevID, ProdID, Cfname' и объединить два CSV ' $ слился = $ csv1 + $ csv2 $ слиты | Select -Property * -Unique' – DisplayName