使用.txt值列表过滤CSV

时间:2017-01-27 20:21:11

标签: powershell csv

我需要过滤大约100个CSV,所需的ouptut是' First Name'和'姓氏'字段匹配我的列表。不幸的是,由于我搜索的列表是单独手工制作的,除了名字和姓氏的组合之外没有唯一的标识符或密钥(我有街道地址,但它们的格式与CSV不同)

我尝试过的事情:

$myinput = Get-Content 'C:\folder\names.txt'
Import-Csv 'C:\folder\mycsv1.csv' | Where {
  $myimput -match $_.'Last Name' -and
  $myinput -match $_.'First_Name'
} | Out-File 'C:\folder\results.txt'

我得到一个空白的.txt。当我在没有Out-File的情况下再次尝试时,我在PowerShell中没有输出。

此外,如果有办法使用所有100个CSV自动执行此操作,那将非常有用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你输入错误,尝试这样的搜索所有csv(如果所有csv都有相同的列):

$ListNames=get-content "c:\temp2\names.txt"
$dircsv="c:\temp2\"
$PathResultFile="c:\temp\result.csv"

gci $dircsv -file -filter "*.csv" | %{
import-csv $_.FullName | where {$csvrow=$_; ($ListNames | where {$_ -match $csvrow.'Last Name' -and $_ -match $csvrow.'First_Name'}).count -gt 0 } 
} | export-csv $PathResultFile -NoType