2016-11-16 3 views
0

Ich habe eine CSV-Dump mit etwa 10 k Zeilen. Ich versuche, dies in mehreren Dateien basierend auf einem Speicherfeld mit Powershell zu teilen.Erstellen Sie Dateien aus Master-CSV-Datei basierend auf Feld

Master File Inhalt

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

auf Basis dieser Daten, ich brauche eine Datei für NYC und eine andere für BOS mit ihren entsprechenden Inhalte zu erstellen.

Ich möchte etwas, das schnell ist. Ich dachte daran, jede Zeile zu wiederholen und die Zeile vorher zu überprüfen und zu vergleichen, aber ich dachte, es könnte zu langsam sein.

Dann dachte ich an

Group-Object-Cmdlets
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 

Ich versuche, den Inhalt von jedem Objekt zu erhalten und eine neue Datei zu erstellen.

Antwort

2

Versuchen laufen

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

Es die Eingabedatei liest, Gruppen der Inhalt des Eingangs und dann für jede Gruppe im Ergebnis eine neue CSV-Datei erstellt, die Gruppen Inhalte enthält, den Namen der Gruppe, .

+0

vielen Dank. Ich liebe es! – causita

Verwandte Themen