CSV Dateien nach Spalte sortieren und in neue Datei importieren
Hallo zusammen
Folgendes möchte ich realisieren
Ich habe csv Dateien die ich mit dem Befehl CSVDE erzeugt habe.
Die Dateien enthalten informationen aus unserem AD.
Da ich fünf (5) verschiedene Domänen abfrage muss habe ich auch fünf Dateien.
Leider sind die Spalten in den einzelnen Dateien, obwohl die Abfrage immer die gleiche ist, unterschiedlich sortiert.
(Liegt wohl daran das LDAP wumpe ist wo die einzelnen Daten stehen uns keine Sorting braucht).
Ich möchte nun diese fünf Dateien in eine importieren, wobei dabei natürlich die einzelenen Spalten immer an der gleichen Stelle sein müssen.
Lässt sich sowas realisieren?
Voraussetung für das ganze Prozedere ist die Powershell
So werden die Daten erzeugt:
csvde -s server.tld -f ausgabe.txt -r "(cn=userid)" -l "attrib1,attrib2,attrib3"
Die Ausgabe sieht dann ungefähr so aus:
Datei DOM 1
DN,attrib1,attrib2,attrib3
"CN=blablabla",inhalt1,inhalt2,inhalt3
Datei DOM 2
DN,attrib3,attrib2,attrib1
"CN=blablabla",inhalt3,inhalt2,inhalt1
Datei DOM 3
DN,attrib2,attrib3,attrib1
"CN=blablabla",inhalt2,inhalt3,inhalt1
Das Ergebniss sollte so aussehen
DN,attrib1,attrib2,attrib3
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 1)
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 2)
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 3)
bedanke mich schon mal im voraus für eure Hilfe
Gruß Ralf
Folgendes möchte ich realisieren
Ich habe csv Dateien die ich mit dem Befehl CSVDE erzeugt habe.
Die Dateien enthalten informationen aus unserem AD.
Da ich fünf (5) verschiedene Domänen abfrage muss habe ich auch fünf Dateien.
Leider sind die Spalten in den einzelnen Dateien, obwohl die Abfrage immer die gleiche ist, unterschiedlich sortiert.
(Liegt wohl daran das LDAP wumpe ist wo die einzelnen Daten stehen uns keine Sorting braucht).
Ich möchte nun diese fünf Dateien in eine importieren, wobei dabei natürlich die einzelenen Spalten immer an der gleichen Stelle sein müssen.
Lässt sich sowas realisieren?
Voraussetung für das ganze Prozedere ist die Powershell
So werden die Daten erzeugt:
csvde -s server.tld -f ausgabe.txt -r "(cn=userid)" -l "attrib1,attrib2,attrib3"
Die Ausgabe sieht dann ungefähr so aus:
Datei DOM 1
DN,attrib1,attrib2,attrib3
"CN=blablabla",inhalt1,inhalt2,inhalt3
Datei DOM 2
DN,attrib3,attrib2,attrib1
"CN=blablabla",inhalt3,inhalt2,inhalt1
Datei DOM 3
DN,attrib2,attrib3,attrib1
"CN=blablabla",inhalt2,inhalt3,inhalt1
Das Ergebniss sollte so aussehen
DN,attrib1,attrib2,attrib3
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 1)
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 2)
"CN=blablabla",inhalt1,inhalt2,inhalt3 (Inhalt aus Datei DOM 3)
bedanke mich schon mal im voraus für eure Hilfe
Gruß Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205574
Url: https://administrator.de/contentid/205574
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
OK habs verstanden (blöd das CSVDE dafür keine Option bietet für den Fall das ein Wert leer ist; naja egal)
Mit folgendem Script sollte es für deinen Fall gehen. Gib nur noch die Pfade zu den CSV-Dateien der jeweiligen Domains in Zeile 1-5 an, und den Pfad für die zusammengefasste CSV in Zeile 6.
Grüße Uwe
Mit folgendem Script sollte es für deinen Fall gehen. Gib nur noch die Pfade zu den CSV-Dateien der jeweiligen Domains in Zeile 1-5 an, und den Pfad für die zusammengefasste CSV in Zeile 6.
$csv1 = Import-Csv "C:\domain1.csv" -Delimiter ","
$csv2 = Import-Csv "C:\domain2.csv" -Delimiter ","
$csv3 = Import-Csv "C:\domain3.csv" -Delimiter ","
$csv4 = Import-Csv "C:\domain4.csv" -Delimiter ","
$csv5 = Import-Csv "C:\domain5.csv" -Delimiter ","
$ausgabePfad = "C:\merged.csv"
$csvArray = $csv1,$csv2,$csv3,$csv4,$csv5
$tmpMerge = $csvArray
for ($i = 0; $i -le $csvArray.Length - 1;$i++){
$tmpMerge = Compare-Object $tmpMerge $csvArray[@($i+1)] -PassThru -Property DN -IncludeEqual| select * -ExcludeProperty SideIndicator
}
$tmpMerge | Export-Csv $ausgabePfad -NoTypeInformation
Grüße Uwe
Hier geht's einwandfrei ...