2017-06-11 8 views
1

私が抽出される必要があるアドレスフィールドが含まれている以下のcsvファイルがあります。ここではpowershellで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 

どのように修正できますか?

+0

「ストリート情報」はShirley/Bowm ? – kennyzx

+1

すべてのアドレスにリテラル「St.」があるわけではありません。 Lane、Av.Way、Driveなどはどうですか? – LotPings

+0

元の住所は中国語で、私はちょうど例えば私たちの住所に変換します。実際には、中国の住所に複数の区切り文字を分割する必要があるという問題もあります。 –

答えて

1

コメントによると、これはすべての住所に対応するわけではありません(すべての通りを終えるわけではありません)が、あなたのファイルにあると仮定して、あなたの分割ごとに、あなたのコードの唯一の問題はSelectステートメントです。

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

戻り値:

​​
1

が返されますが、むしろのみ、そのプロパティを持つフィルタオブジェクトよりも、あなたはLocationプロパティの値を取得するよう-ExpandPropertyパラメータを使用する必要があります修正するには

Marksソリューションの代替手段:

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