根据字段

时间:2016-11-16 20:16:36

标签: powershell csv

我有一个大约10 k行的CSV转储。我尝试使用Powershell基于商店字段将其拆分为多个文件。

主文件内容

Date,   Store,  Product
11/16    NYC    100
11/16    NYC    101
11/16    BOS    100
11/16    BOS    101

根据这些数据,我需要为NYC创建一个文件,为BOS创建另一个文件及其相应的内容。

我想要一些快速的东西。我考虑过循环每一行并检查前一行并进行比较,但我想可能它太慢了。

然后我考虑使用Group-Object cmdlet

import-csv  C:\masteFile.csv | Group-Object{$_.store}
The output is
Count Name  Group 
2      NYC   {@{DATE=11/06; STORE=NYC; PRODUCT=100},{@{DATE=11/06; STORE=NYC; PRODUCT=101}}
3      BOS   {@{DATE=11/06; STORE=BOS; PRODUCT=100},{@{DATE=11/06; STORE=BOS; PRODUCT=101}}... AND SO ON

我试图从每个对象获取内容并创建一个新文件。

1 个答案:

答案 0 :(得分:2)

尝试运行

Import-Csv  C:\masteFile.csv | Group-Object Store | ForEach-Object { $_.Group | Export-Csv "$($_.Name).csv" }

它读取输入文件,对输入的内容进行分组,然后对结果中的每个组创建一个新的csv文件,其中包含具有组名称的组内容。