【发布时间】:2019-10-03 16:39:57
【问题描述】:
我正在寻找一个函数来比较两个格式如下的 CSV:
a.csv
x1|y1
x2|y2
x3|y3
b.csv
x2
x3
x4
此 csv 中的 x 值将与 a.csv 中的 x 值完全相同
我想要实现的是当 for 循环运行时,输出是 b.csv 中的键与 a.csv 的键 ve 匹配的任何位置,它将输出 b 键及其匹配的值:
x2|y2
x3|y3
x4| "no match"
我的 CSV 格式可能是也可能不是标题(很可能不是),但值和键列将始终保持不变。
我对 PowerShell 非常陌生,语法和用法与其他语言相似,但似乎总有一种更简单的方法可以在 PowerShell 中运行我认为的简单操作。
任何帮助将不胜感激。
【问题讨论】:
-
a.csv数据中的x1|y1发生了什么变化? ///// 另外,您提到了哈希表...但是您的数据中没有哈希表。你在说什么哈希表? [咧嘴] -
我想从 a.csv 创建一个哈希表我想比较 a 和 b csv 的第一列并输出 a 键和 b 键匹配的值。如果没有从 b 到 a 的匹配键,那么我想输出一些说明它的内容。
-
@RandomGuy 听起来您已经确切知道该做什么了! :) 问题是什么?
-
如果您的集合相当小,那么在遍历第二个集合时构建哈希表将比
$CollectionOne -match $ItemFromCollectioTwo花费更长的时间。所以......你的数据集有多大? [咧嘴] -
问题是我不精通powershell,所以我不知道从哪里开始......还需要在这里从随机人那里更改我的名字哈哈
标签: powershell csv compare hashtable