rippchen
Goto Top

Doppelte Eintrage in einer CSV Datei mit PowerShell löschen (Kriterium Aktualität) . Filter

Hallo,

ich nutze folgenden Code für mein Problem:

$folder = 'C:\Users\ICH\Desktop\Import'  
$out = 'C:\Users\ICH\Export\Gesamt.csv'  
gci $folder -Filter *.csv -recurse | %{
    $raw = ((gc $_.FullName) | select -Skip 1) 
    $csv = $raw[0..($raw.GetUpperBound(0)-1)]| ConvertFrom-CSV -Delimiter ";" -Header "1","2","Timestamp","4","Modifikation Timestamp","6","7"   
    $csv | Sort-Object -Property "Timestamp", "Modifikation Timestamp" -descending |export-csv $out -Append -Delimiter ";" -Notype -Encoding UTF8   
}


Der Code öffnet alle CSV-Dateien in einem Ordner inkl. der Unterordner und löscht jeweils die erste und letzte Zeile.

Zudem werden die Inhalte absteigend nach der dritten Spalte "TImestamp" und der 5 Spalte "Modifikation Timestamp sortiert".

Es kann sein, dass die Messwerte öfter als einmal auftreten = Gleicher "Timestamp" und unterschiedlich aktuell sind, unterschiedlicher "Modifikation Timestamp".

Ich möchte nun in die neu erzeugte CSV- Datei nur die aktuellsten Werte übernehmen, falls in der Spalte "Timestamp" doppelte Werte vorhanden sind.

Eine Beispiel CSV Datei liegt bei:

http://workupload.com/file/ZFSbTG2

Vielen Dank.
Rippchen

Content-Key: 305683

Url: https://administrator.de/contentid/305683

Printed on: April 23, 2024 at 21:04 o'clock

Member: colinardo
Solution colinardo May 29, 2016 updated at 14:44:55 (UTC)
Goto Top
Hallo Rippchen,
bei solchen Aufgaben hilf einem sehr gut das CMDLet group-object (Alias: group). Ersetze in deinem Skript oben Zeile 6 durch das hier:
$csv | group {get-date $_.Timestamp} | %{
    $_.Group | sort {get-date $_.'Modifikation Timestamp'} -Descending | select -First 1  
} | Sort "Timestamp", "Modifikation Timestamp" -descending | export-csv $out -Append -Delimiter ";" -Notype -Encoding UTF8    
Das macht folgendes:
Es werden die die Zeilen mit gleichen "Timestamps" Gruppiert, dann wird für jede dieser Gruppen innerhalb dieser Gruppe nach der Spalte "Modifikation Timestamp" (Denglisch face-smile) Absteigend sortiert und nur der erste Eintrag der Gruppe übernommen.

Grüße Uwe
Member: Rippchen
Rippchen May 29, 2016 at 15:06:36 (UTC)
Goto Top
Vielen Vielen Dank,

es funktioniert face-smile

Ich wünsche noch ein schönes Restwochenende .


Grüße
Rippchen
Member: colinardo
colinardo May 29, 2016 updated at 15:07:34 (UTC)
Goto Top
Zitat von @Rippchen:
Vielen Vielen Dank,
Keine Ursache.
Ich wünsche noch ein schönes Restwochenende .
Wünsche dir ebenso face-smile

Grüße Uwe
Member: Rippchen
Rippchen May 30, 2016 at 07:21:49 (UTC)
Goto Top
Gibt es eine Möglichkeit die Verwendung des Arbeitsspeichers zu limitieren ?

Ich benötige nämlich teilweise 38 GB Arbeitsspeicher (inkl. virtuellem Speicher) und mein Prozessor ist dabei nur zu 37 Prozent ausgelastet.

VG

Rippchen
Member: colinardo
colinardo May 30, 2016 updated at 08:23:12 (UTC)
Goto Top
Ja, aber, das hat ja nun rein gar nichts mehr mit der obigen Fragestellung zu tun, also mache dazu einen neuen Thread auf. Merci.
Und dann aber bitte auch mit allen hier dazu benötigten Infos wie OS etc.
Member: Rippchen
Rippchen May 30, 2016 at 09:22:37 (UTC)
Goto Top
Verzeihung du hast natürlich recht.

Die neue Frage wurde soeben erstellt.