Di que tengo un input.CSV
aspecto como este
234321, AAA, value1
7751, BBB, value2
32123, AAA, value2
34553, CCC, value4
65433, BBB, value3
43664, AAA, value3
Me gustaría dividirlo en varios CSV de acuerdo con los valores de la segunda columna. Entonces, un AAA.csv
archivo, un BBB.csv
archivo, un CCC.csv
archivo, etc.
No conozco todos los valores de la segunda columna de antemano, pero están limitados a un máximo de 100. Y input.CSV
contiene un máximo de 100 000 líneas.
¿Cómo debo proceder?
¿Funcionaría esto?
$test = @"
col1,col2,col3
234321, AAA, value1
7751, BBB, value2
32123, AAA, value2
34553, CCC, value4
65433, BBB, value3
43664, AAA, value3
"@
$test | Out-File input.csv
$csv = Import-Csv input.csv
$listofcol2values = @()
$listofcol2values = $csv | Select -ExpandProperty col2 -Unique
foreach ($value in $listofcol2values)
{$csv | ?{$_.col2 -eq $value} | Export-Csv ($value + ".csv")}
EDITAR:
La solución sugerida por iRon es de hecho más apropiada:
Import-Csv input.csv | % {$_ | Export-Csv ($_.col2 + ".csv") -Append}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras