Durch CSV iterieren und Werte im Array speichern mit Powershell
Hallo zusammen,
ich habe eine CSV Datei mit zwei Spalten.
Es können immer wieder die selben IDs vorkommen, jeweils mit anderen Texten in Spalte 2:
Beispiel:
Ich möchte das Powershell durch alle EInträge durch iteriert. Der zweite Wert (Affe, Elefant..) soll grundsätzlich in ein Array geschrieben werden (mit ID)
Am Schluss sollen alle Arrays als CSV ausgegeben werden. In folgendem Aufbau:
Er speichert praktisch alles was er pro ID findet und schreibt es in eine Zeile (array?)
Soweit bin ich schon:
Aber ich bin leider Neuling :/
Freu mich über Hilfe!
Gruß
ich habe eine CSV Datei mit zwei Spalten.
- in Spalte A ist eine ID.
- In Spalte B ein Text.
Es können immer wieder die selben IDs vorkommen, jeweils mit anderen Texten in Spalte 2:
Beispiel:
123,Affe
233,Elefant
233,Tiger
233,Jaguar
123, Nilpferd
Ich möchte das Powershell durch alle EInträge durch iteriert. Der zweite Wert (Affe, Elefant..) soll grundsätzlich in ein Array geschrieben werden (mit ID)
Am Schluss sollen alle Arrays als CSV ausgegeben werden. In folgendem Aufbau:
123, Affe, Nilpferd
233, Elefant, Tiger, Jaguar
Er speichert praktisch alles was er pro ID findet und schreibt es in eine Zeile (array?)
Soweit bin ich schon:
Import-Csv $pfad| Foreach-Object {
foreach ($property in $_.PSObject.Properties)
{
$array = @($property.name, $property.value)
}
}
Aber ich bin leider Neuling :/
Freu mich über Hilfe!
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 926420134
Url: https://administrator.de/forum/durch-csv-iterieren-und-werte-im-array-speichern-mit-powershell-926420134.html
Ausgedruckt am: 22.12.2024 um 15:12 Uhr
12 Kommentare
Neuester Kommentar
Moin,
tio.run
Gruß Thomas
$File = "C:\Pfad\zur\File.csv"
$Output = "C:\Pfad\zur\Output.csv"
$CSV = Import-CSV $File -delimiter ',' -Header 'Id','Text'
$CsvNeu = Foreach ($Id in $CSV | Group-Object -Property Id) {
"{0},{1}" -f $Id.Name,($Id.Group.Text -Join ",")
}
$CsvNeu | Set-Content $Output
tio.run
Gruß Thomas
$File = "C:\Pfad\zur\File.csv"
$Output = "C:\Pfad\zur\Output.csv"
$CSV = Import-CSV $File -delimiter ',' -Header 'id', 'tiername', 'beschreibung', 'name'
$CsvNeu = Foreach ($Id in $CSV | Group-Object -Property Id) {
"{0},{1},{2},{3}" -f $Id.Name,$id.Group.tiername,($Id.Group.Beschreibung -Join ","),$id.Group.Name
}
$CsvNeu | Set-Content $Output
Import-CSV 'C:\Pfad\zur\File.csv' -delimiter ',' -Header 'id', 'tiername', 'beschreibung', 'name' | group Id | %{[pscustomobject]@{Id=$_.Name;tiername=$_.group.tiername;Beschreibung=($_.Group.Beschreibung -join ',');Name=$_.Group.Name}} | export-csv 'C:\Pfad\zur\Output.csv' -delimiter ',' -NoType -Encoding UTF8
Moin,
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Freu mich über Hilfe!
Gruß
GrußGruß
Zitat von @148656:
Moin,
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Manche bleiben es ein Leben lang 😜Moin,
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Würde ich so machen:
Wenn du sicher bist, dass bei jeder Id der Tiername und Name immer gleich ist, kannst du natürlich auch wie im ersten Beispiel oben nur die Id-Eigenschaft mittels group-object gruppieren lassen.
Hier weden jetzt nur Objekte gruppiert, sofern diese 3 Eigenschaften alle übereinstimmen, ansonsten wird noch eine 2. Zeile mit den jeweils anderen Eigenschaften erzeugt.
tio.run
BTW: Hast du schon einen Blick in unseren Powershell Leitfaden für Anfänger geworfen?
Gruß Thomas
$File = "C:\Pfad\zur\File.csv"
$Output = "C:\Pfad\zur\Output.csv"
$CSV = Import-CSV $File -delimiter ',' -Header 'Id','Tiername','Beschreibung','Name'
$CsvNeu = Foreach ($Obj in $CSV | Group-Object -Property Id,Tiername,Name) {
"{0},{1},{2},{3}" -f $Obj.Group.Id, $Obj.Group.Tiername, ($Obj.Group.Beschreibung -Join ','), $Obj.Group.Name
}
$CsvNeu | Set-Content $Output
Wenn du sicher bist, dass bei jeder Id der Tiername und Name immer gleich ist, kannst du natürlich auch wie im ersten Beispiel oben nur die Id-Eigenschaft mittels group-object gruppieren lassen.
Hier weden jetzt nur Objekte gruppiert, sofern diese 3 Eigenschaften alle übereinstimmen, ansonsten wird noch eine 2. Zeile mit den jeweils anderen Eigenschaften erzeugt.
tio.run
BTW: Hast du schon einen Blick in unseren Powershell Leitfaden für Anfänger geworfen?
Gruß Thomas
Zitat von @148934:
Zitat von @148656:
Moin,
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Manche bleiben es ein Leben lang 😜Moin,
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Na zum Glück gibt es administrator.de, wo man alles Outsourcen kann.
Zitat von @TK1987:
Zitat von @148656:
Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
🎵 Ich bin Beginner man, irgendwas fang ich immer an! 🎵Also wenn ich mir deine History so anschaue, Frage ich mich, ab wann ist man kein Neuling mehr?
Manche bleiben es ein Leben lang 😜
Na zum Glück gibt es administrator.de, wo man alles Outsourcen kann.
Mag ja alles schön und gut sein. Aber wenn ein User, der seit Ende 2019 registriert ist und In unzähligen Antworten den explizierten Hinweis auf weiterführende Lektüre bekommen hat. Und jedes Mal geantwortet hat: "schau ich mir an"…. Eventuell sollte man ihn auf entsprechende Kurse verweisen, die sein Arbeitgeber finanzieren kann. Zum Beispiel aus dem Heinemann Verlag https://shop.heinemann-verlag.de/seminare/264/online-intensiv-seminar-po ...
Zitat von @TK1987:
War eigentlich auch keine Kritik an deinem Post. Wollte nur mitteilen, das ich wegen euch jetzt einen Ohrwurm hab 😁
War eigentlich auch keine Kritik an deinem Post. Wollte nur mitteilen, das ich wegen euch jetzt einen Ohrwurm hab 😁
Ich hab es nur als Feedback wahrgenommen 😁