johnny-cgn
Goto Top

Powershell Ersetzen von Zahlenfolgen

Liebe Administratoren,

ich bekomme von einem Kunden eine CSV zur Verfügung gestellt, in der zu dessen internen Verwendung in einer Preisspalte zum Teil Zahlenwerte die entfernt werden müssen.
Ich versuchte das auf dem folgenden Weg zu lösen.
$CSV = import-csv $import -UseCulture

$CSV = $CSV | select-object @{Name="SKU";Expression={$_.Artikelnummer}},@{Name="MIN_PRICE";Expression={$_."PRICE" -replace '111111';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '222222';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '333333';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '444444';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '555555';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '666666';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '777777';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '888888';$Null}}  
$CSV = $CSV | select-object @{Name="SKU";Expression={$_.SKU}},@{Name="MIN_PRICE";Expression={$_."MIN_PRICE" -replace '999999';$Null}}  


$CSV |export-csv c:\foo\test1.csv -UseCulture -notypeinformation

Das ist leider weder sonderlich elegant, noch funktioniert es.
Das Ergebnis ist gefüllt mit Leerzeichen:
"SKU";"MIN_PRICE"
"AT_103965_AD";"19,95 "
"AT_106169_AD";"15,95 "
"AT_107716_AD";"10,95 "
"AT_108721_122_AD";"39,95 "


Die Position der Leerzeichen hinter den Werten finde ich komisch, da die ersetzen Zahlenfolgen vor den Preisen stehen UND anfangen kann ich mit dem Ergebnis so auch nix.

Content-ID: 307768

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

Ausgedruckt am: 20.11.2024 um 00:11 Uhr

129813
Lösung 129813 21.06.2016 aktualisiert um 13:16:10 Uhr
Goto Top
Hi.
$CSV = import-csv $import -UseCulture
$CSV | %{$_.Artikelnummer -replace '(1|2|3|4|5|6|7|8|9){6}',''}   
$CSV | select @{n="SKU";e={$_.Artikelnummer}},@{n="MIN_PRICE";e={$_."PRICE"}} | export-csv c:\foo\test1.csv -UseCulture -notypeinformation  
This regex: (1|2|3|4|5|6|7|8|9){6} matches your single 111111,222222,333333,... and so on in one small piece of expression face-wink.

Regards