源文件如下:
Pre-delivery;1234567 Post-delivery;7654321
查找文件:
1234567;A 7654321;B
输出应为:
Pre-delivery;A Post-delivery;B
答案 0 :(得分:0)
在10分钟内完成..
效果不佳 优化解决方案
- 它会为查找文件中发现的每一行读取整个文件
#https://stackoverflow.com/questions/54087831/lookup-on-file-and-output
#inspired by https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell
<#
source file
Pre-delivery;1234567
Post-delivery;7654321
lookup file
1234567;A
7654321;B
result
Pre-delivery;A
Post-delivery;B
#>
$sourceFile=".\foosource.txt"
$lookup=".\foolookup.txt"
# read lookup file line by line
foreach($lineLookup in Get-Content $lookup) {
#read source data file line per line
foreach($line in Get-Content $sourceFile) {
#prepare variables
$splitLookup=$lineLookup.Split(";")
$splitSource=$line.Split(";")
#if equals
if($splitLookup[0] -eq $splitSource[1]){
#print in the given format
$result = $splitSource[0].Trim()+";"+$splitLookup[1].Trim()
Write-Host $result
}
}
}