我们如何重新制作程序以运行并将新值保存在c.csv文件中?

问题描述

我需要在b.csv中进行搜索,并在a.csv删除一条记录,其中在b.csva.csv中都存在数字和名称。同样,例如,ACURA和HONDA可以具有相同的地址,如果我们需要删除ACURA,则不能删除具有相同地址的HONDA。

文件a.csv

address;;name;;
8971018564;ACTUATOR,AXLE;ACURA;28932,9075;50
8972534230;ACTUATOR,DOOR LK F;ACURA;16597,035;50
8971283222;ACTUATOR,DOOR LK FR;ACURA;18548,46;50
8971283232;ACTUATOR,RR DOOR LO;NISSAN;17838,45;50
8972534250;ACTUATOR,DR LK RR LH;ACURA;16063,425;50

文件b.csv

address;name
8971018564;ACURA
8971283232;NISSAN
8971283222;ACURA
8972534250;ACURA
8971018564;HONDA

以下脚本无法正常运行。脚本返回错误输出仅一列,并且必须返回七列,而且文件a.csv约为120 mgbit并且停顿,文件大小是否受powershell限制?

#Read the first file into a second variable using Import-Csv.
$a = Import-Csv 'a.csv' -Delimiter ';'

#Read the second file and expand the address field,so you get an array with just the values. Assign that to another variable.
$b = Import-Csv 'b.csv' | Select-Object -Expand 'address'

#For better performance make $b a hashtable instead of an array
$b = @{}
Import-Csv 'b.csv' | ForEach-Object {
    $b[$_.address] = $true
}

#and check for the absence of an address with a hashtable lookup.
$a | Where-Object {
    -not $b.ContainsKey($_.address)
} | Export-Csv 'c.csv' -Delimiter ';'

脚本返回一列,并且必须返回七列

#TYPE System.Management.Automation.PSCustomObject
"address"
"8971018564"
"8972534230"
"8971283212"
"8971283222"
"8972534240"
"8971283242"
"8943586191"
"8943586201"
"8973159320"
"8972546570"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...