exitquit
Goto Top

Txt Datei transponieren über Powershell

Hallo Zusammen!


ich bin gerade dabei eine kleine Auswertung zu erstellen. Bekomme meine Daten aber in einem kaum brauchbaren Format.
Um diese weiter zu verarbeiten habe ich mich dazu entschieden mit etwas näher mit PowerShell zu befassen.(Zuvor nur kleinere Scripte für die Datensicherung, Benachrichtigungen bei Prozessausfall, Automatische Programmstart etc. erstellt)


Folgenden Input habe ich zur mir exportieren können.

8;01.06.2022; 7,5
8;02.06.2022; 7,5
8;03.06.2022; 7,6
8;04.06.2022; 7,6
8;05.06.2022; 8,4
8;06.06.2022; 7,5
8;07.06.2022; 
8;08.06.2022; 
8;09.06.2022; 7,5
8;10.06.2022; 5
8;11.06.2022; 6
8;12.06.2022; 7
8;13.06.2022; 7,8
8;14.06.2022; 7,5
8;15.06.2022; 7,5
8;16.06.2022; 7,5
8;17.06.2022; 7,5
8;18.06.2022; 7,5
8;18.06.2022; 
8;19.06.2022; 
8;20.06.2022; 7,5
8;21.06.2022; 7,5
8;22.06.2022; 7,5
8;23.06.2022; 7,5
8;24.06.2022; 7,1
8;25.06.2022; 7,2
8;26.06.2022; 7,8
8;27.06.2022; 
8;28.06.2022; 6,4
8;29.06.2022; 7,5
8;30.06.2022; 7,5

Um diesen Export in einem anderen Programm zu Importieren brauche ich diese in folgendem Format.

8.06.2022; 7,5;7,5;7,6;7,6;8,4;7,5;;;7,5...

Für den gesamten Input oben gibt es also nur eine Zeile die den Output beschreibt. Hierbei ist es entscheidend, dass die erste Zahl eine Kombination aus dem Column1 und Column2 des Inputs ist. Das heißt die "8" wird aus Colum1 entnommen und beim Colum2 lediglich die 2-8 Position (.06.2022). Die beiden Werte werden entsprechend zusammengeführt und im Output als Colum1 ausgegeben.

Das mit dem Datum mag sehr verwirrend sein, jedoch brauche ich eigentlich nur die Kennziffer aus Colum1 und MM.YYYY aus Colum2. Dies zusammengesetzt ist ein Schlüsselfeld in einem anderen Programm (Kennziffer.MM.YYYY) welches ich Updaten möchte.

Colum3 des Inuputs wird transponiert und in Column2 - ColumnN des Outputs ausgegeben.


Ist das in irgend einer weiße mit PowerShell umsetzbar?
Den Import der .txt Input Datei und den Output habe ich mit bereits zusammenreimen können. Aus dem Colum2 kann ich mit einem Substring das MM.YYYY aus dem Datum auslesen
$_.Substring(2,8)

Ich habe allerdings das Gefühl dass ich gerade nicht weiter komme. Ich habe keine gute Quelle zum Transponieren einer Colomn über PowerShell gefunden.
Falls jemand sich da auskennt, Zeit und Lust hat mir dabei zu helfen oder auch entsprechende Quellen kennt wäre ich um jede Hilfe dankbar!

Content-ID: 3202437318

Url: https://administrator.de/forum/txt-datei-transponieren-ueber-powershell-3202437318.html

Ausgedruckt am: 11.04.2025 um 20:04 Uhr

mbehrens
Lösung mbehrens 29.06.2022 um 00:20:59 Uhr
Goto Top
Als ein erster Ansatz

Importieren der Daten:
$Daten = Import-Csv -Path .\Datendatei -Header 'Spalte01', 'Spalte02', 'Spalte03' -Delimiter ';'  

Transformieren:
$Daten.Spalte01.Item(1) + $Daten.Spalte02.Item(1).Substring(3,7) + ';' + ($Daten.Spalte03 -Join ';')  
colinardo
Lösung colinardo 29.06.2022 aktualisiert um 11:34:36 Uhr
Goto Top
Servus @exitquit, willkommen auf Administrator.de!
Und falls auch noch mehrere unterschiedliche Kombinationen aus Kennziffern und Datum-Werten in der selben Datei vorkommen können erledigt das der folgende Einzeiler gleich mit
Import-Csv .\demo.csv -delimiter ';' -header (1..3) | group {"$($_.1)$(($_.2).Substring(2))"} | %{"$($_.Name);$($_.Group.3 -join ';')"}  
Online-Demo

Grüße Uwe
exitquit
exitquit 30.06.2022 um 21:13:06 Uhr
Goto Top
@colinardo @mbehrens Sehr geil! Das war ja quasi schon die ganze Lösung :D
Vielen Lieben dank an euch! Das hat mir schon gereicht. Von da hab ich mir das Script zusammenbasteln können.
colinardo
colinardo 30.06.2022 um 21:23:57 Uhr
Goto Top
👍.
Serie: txt Datei transponieren über Powershell
Txt Datei transponieren über Powershell4