首页 > 解决方案 > 如何将具有唯一标题的 CSV 文件组合并显示每行每个 CSV 的输出?

问题描述

我已经看到了许多关于如何组合 CSV 文件的示例,但没有一个完全符合我想要完成的目标。我有多个仅包含 1 行但多列的 CSV 文件。每个 CSV 中的每个标题可能不同,但它们之间确实有一个共同的列名。我想要完成的输出是将每个 CSV 文件中的所有标题(无论显示的值是否为空)添加到我的输出 CSV 文件的第 1 行。然后我想将每个 CSV 的单行输出与输出 CSV 文件中的一行对齐,并相应地填充每一列,并将没有分配值的那些留空。

CSV1:

姓名、日期、年份、国家
比尔,2018 年 5 月,1962 年,加拿大

CSV2:

简介、省、大小、名称
1,开,14,史蒂夫

CSV 决赛:

姓名、简介、尺寸、日期、年份、省、国家
比尔,,,2018 年 5 月,1962,,加拿大
史蒂夫,1,14,,,ON,,

标签: powershellcsv

解决方案


虽然将有另一种选择在一个衬里中执行此操作Join-Object,但您可以从 PSGallery 获取此 cmdlet。

Find-Script join-object | Install-Script -Verbose -Scope CurrentUser

下面的作品,

(Join-Object -Left $CSV1 -Right $CSv2 -LeftJoinProperty Name -RightJoinProperty Name ), (Join-Object -Left $CSV2 -Right $CSV1 -LeftJoinProperty Name -RightJoinProperty Name -Type AllInLeft) | Export-Csv -Path c:\CombinedCsv.csv -NoTypeInformation

推荐阅读