如何在powershell中获取csv记录中的一个拆分项?

时间:2017-06-11 05:05:21

标签: powershell csv

我有以下csv文件,其中包含需要提取的地址字段:

"date","location","field1"  
"2017/01/01 10:32","44 Shirley St. West Chicago, IL 60185","1"  
"2017/01/02 07:06","70 Bowman St. South Windsor, CT 06074","1" 

这是我的剧本:

$input = $ARGS[0]

$lines = import-csv $input | select location
foreach ($l in $lines) {
    $a= $l -split 'St\.'
    $a[0]
}

我只需要街道信息,但它显示以下内容:

@{location=44 Shirley   
@{location=70 Bowman 

我该如何解决?

2 个答案:

答案 0 :(得分:1)

根据评论,这不适用于每个地址(因为它们并非全部都是街道)但是假设在你的文件中他们这样做而你只是想要街道的名称而没有'圣'根据您的拆分,您的代码唯一的问题是使用Select语句。

要解决此问题,您需要使用-ExpandProperty参数,以便获取返回的Location属性的值,而不是仅具有该属性的过滤对象:

$lines = import-csv $input | select -ExpandProperty Location
foreach ($l in $lines) {
    $a= $l -split 'St\.'
    $a[0]
}

返回:

44 Shirley 
70 Bowman

答案 1 :(得分:1)

Marks解决方案的替代方案:

$lines = import-csv $input 
foreach ($l in $lines) {
    $a= $l.location -split 'St\.'
    $a[0]
}