我是powershell的新手。我有两个不同的CSV文件,我希望使用每个文件中的主键字段合并为一个。 一个例子是:
CSV 1:
ID - TB - Number
01:01 - SB - 24
12:04 - DV - 63
CSV 2:
ID - UR1 - UR2
01:01 - soft - install soft
12:04 - soft - uninstall soft
所需输出
ID - TB - Number - UR1 - UR2
01:01 - SB - 24 - soft - install soft
12:04 - DV - 63 - soft - uninstall soft
答案 0 :(得分:0)
确实,CSV没有正确格式化,做了一个丑陋的修复(前两行),之后你可以按照下面这样做
$csv1 = (gc C:\tmp\csv1.ps1 -raw) -replace ' - ',',' | ConvertFrom-Csv
$csv2 = (gc C:\tmp\csv2.ps1 -raw) -replace ' - ',',' | ConvertFrom-Csv
$columns1 = ($csv1 | Get-Member -MemberType NoteProperty).Name
$csv1 | % {
$row1 = $_
$row2 = $csv2 | ? {$_.ID -eq $row1.ID}
$row2 | Get-Member -MemberType NoteProperty | % {
if($_.Name -notin $columns1) {
$row1 | Add-Member $_.Name $row2.$($_.Name)
}
}
}
$csv1