Umgang mit einer CSV mit line-feed-Zeichen in einer Spalte in der powershell

Derzeit habe ich ein system erstellt eine Datei mit Trennzeichen, wie das unten, in dem ich verspottet, bis der extra line speist die in den Spalten sporadisch.

Column1,Column2,Column3,Column4

Text1,Text2[LF],text3[LF],text4[CR][LF]

Text1,Text2[LF][LF],text3,text4[CR][LF]

Text1,Text2,text3[LF][LF],text4[CR][LF]

Text1,Text2,text3[LF],text4[LF][LF][CR][LF]

Ich habe in der Lage, entfernen Sie die Zeilenumbrüche, was mich beunruhigt mit Notepad++ mit der folgenden REGEX, ignorieren Sie die gültigen carriage return/Line feed-Kombinationen:

(?<![\r])[\n]

Ich bin jedoch nicht in der Lage eine Lösung zu finden, verwenden Sie powershell, weil ich denke, wenn ich " get-content für die csv-Datei die Zeilenumbrüche in den text-Felder werden ignoriert und der Wert ist gespeichert als separates Objekt in der variable zugewiesen, um den get-content-Aktion. Meine Frage ist wie kann ich den regex in eine csv-Datei mit ersetzen, wenn das cmdlet ignoriert die Zeilenumbrüche beim laden der Daten?

Ich habe auch versucht die folgende Methode unten, um das laden der Inhalt meiner csv, das nicht funktioniert entweder, wie es nur die Ergebnisse in eine lange Zeichenfolge, die wäre vergleichbar mit der Verwendung von join(get-content).

[STRING]$test = [io.file]::ReadAllLines('C:\CONV\DataOutput.csv')
$test.replace("(?<![\r])[\n]","")
$test | out-file .\DataOutput_2.csv

Schreibe einen Kommentar