我不是在寻找一个写作服务,但请有人能指出我在正确的方向,因为我完全迷失了如何进行。
- 概述**我有一个包含大量数据的CSV,其中一些数据来自脚本,一些数据是手动估算的。我可以运行脚本并获得新数据,这很好。我想做的是找到一种方法来比较原始CSV 1和新CSV 2并更新CSV 1。
Code I currently have
$Vips_to_check = @{}
Import-Csv 'C:\Users\user\Documents\20221201\Netscaler VIPs per Cluster_edited - Raw Data.csv' |
Where-Object {$_.PRD -match "No PRD code from VIP IP and VIP has no backend IPs" -or
$_.PRD -match "No PRD code found from VIP or backend IPs" -or
$_.PRD -match "No PRD code found from backend IPs" -and
$_.ipv46 -notcontains "0.0.0.0"} |
$Results_from_PIM = Import-Csv 'C:\Users\user\Documents\20221201\VIP-Owners_edited.csv'
这两个CSV的有相同的标题和布局,这是好的。我假设!
CSV 1
名称IPV46端口Curstate建议PRD显示名称技术所有者Slack渠道支持电子邮件
name 1 1.2.3.4 8080 Down No No No No No No No
CSV 2
名称IPV46端口Curstate建议PRD显示名称技术所有者Slack渠道支持电子邮件
name 1 1.2.3.4 8080 Down No PRD123 TMOL Gary TMOL Support Support@email.com nsr.sys
我想创建一个散列表,但我就是不明白它们的格式。
$ht = $Results_from_pim @{}
$_.Name = (cant figure out how to reference the cell)
$_.PRD =
$_.("Display Name")
$_.("Tech Owner")
一旦我在哈希表中有了数据,我如何覆盖CSV 1数据?
任何要点或指南都会很棒。我已经试着阅读了https://learn.microsoft.com/en-gb/powershell/scripting/learn/deep-dives/everything-about-hashtable?view=powershell-7.3和https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-pscustomobject?view=powershell-7.3
但这让我更加困惑。
目前的差异只有4或5个条目,它会更快,我手动编辑在excel中,但随着这个脚本变得更大,我可以看到它是更耗时的手动做。
一如既往地谢谢你。
更新
$ht = @{}
foreach ($item in $Results_from_PIM) {
"name = $($item.name)"
"prd = $($item.PRD)"
"Display Name = $($item.'Display Name')"
"Tech Owner = $($item.'Tech Owner')"
"Slack Channel = $($item.'Slack Channel')"
"Support Email = $($Item.'Support Email')"
}
我已经创建了散列表,我想从CSV 2。只是得到它比较CSV 1。
更新2
根据@theo的要求,我调整了问题。另外,为了澄清,当我想要合并CSV时,它基于匹配两个CSV上的名称、IPV46和端口,然后将更新的数据从CSV2移动到CSV1。
2条答案
按热度按时间rqenqsqc1#
您可以使用下面的代码来完成此操作(不需要额外的模块):
请阅读格式
bvpmtnay2#
在通过@jdweng直接转到In PowerShell, what's the best way to join two tables into one?后,我执行了以下操作,这似乎符合我的要求
安装模块名称联接模块作用域当前用户
将使用更大的数据集进行进一步测试,但似乎按要求工作。