在文件上查找并输出

时间:2019-01-08 08:26:36

标签: powershell lookup

源文件如下:

Pre-delivery;1234567
Post-delivery;7654321

查找文件:

1234567;A
7654321;B

输出应为:

Pre-delivery;A
Post-delivery;B

1 个答案:

答案 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
     }

    }

}