问题描述
我需要在b.csv
中进行搜索,并在a.csv
中删除一条记录,其中在b.csv
和a.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 (将#修改为@)