从基于数组的CSV中删除项目

时间:2012-06-29 13:49:40

标签: powershell

首先,这必须在powershell中完成,其他任何东西都不可用。 好的,我有一个看起来像这样的CSV文件

name,  location,   state,  city,       zip,    identity
bob,   uptown      ny,     newyork,    37903,  1001
Will,  downtown,   ny,     brooklyn,   99999,  1010
frank, midtown,    pa,     pitsburg,   46546,  2015
mark,  somewhere,  tx,     dallas,     45644,  1000
Lisa,  here,       nc,     franklin,   46542,  1510

然后我有一个看起来像这样的数组

$foo = @ (1000, 2015, 1010)

我想要做的是构建一个新数组,其中foo数组中列出的项目将被删除。

给出的示例中的预期输出为

name,  location,   state,  city,       zip,    identity
bob,   uptown      ny,     newyork,    37903,  1001
Lisa,  here,       nc,     franklin,   46542,  1510

我尝试过很多东西,但到目前为止还没有成功。顺便说一句,我不必在新数组中有头信息。身份字段是唯一的唯一字段

2 个答案:

答案 0 :(得分:3)

尝试:

$csv = Import-Csv .\aaa.csv
$foo = @(1000, 2015, 1010)
$csvnew = $csv | ? { $foo -notcontains $_.identity }

答案 1 :(得分:1)

在PowerShell 3.0中,您可以使用新的NotIn运算符:

Import-Csv file.csv | where Identity -notin $foo