【发布时间】:2013-07-14 21:11:54
【问题描述】:
由于突然需要编写脚本,将 2 个 csv 文件与至少有 1 个公共列的行和列结合起来,我求助于 powershell。我是 Powershell 的菜鸟。谁能建议如何从两个文件中读取,将一行与一个公共列进行比较和组合,最后输出到另一个文件?
CSV 文件 1
Hosts ABC DEF
===== === ===
SVR01 10 100
SRV02 22 99
CSV 文件 2
Hosts UVW XYZ
===== === ===
SVR01 13 10.5
SRV02 19 8.9
预期输出
Hosts DEF UVW XYZ
===== === === ===
SVR01 100 13 10.5
SRV02 99 19 8.9
希望寻求一些指导。
谢谢。
【问题讨论】:
-
公共列在两个文件中的值是否相同?这些价值观是独一无二的吗?你知道栏目标题吗?到目前为止,您尝试过什么?
-
这些是 CSV 中的标题:"Object ID","Volume","Aggregate","Storage Server","Used","Total","Used (%)" where "Object ID”是唯一的列。我已经在下面尝试了 gpduck 编写的脚本,但是根据我对 gpduck 的回复,我遇到了一些问题。
-
两个文件的行数是否相同且对象 ID 相同?
-
您可以为此使用PowerShell Gallery 中的
[Join-Object] cmdlet:Import-CSV .\file1.csv | Join (Import-CSV .\file2.csv) Hosts | Export-CSV .\OutFile.csv
标签: file powershell join csv