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.
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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 307768
Url: https://administrator.de/contentid/307768
Ausgedruckt am: 20.11.2024 um 00:11 Uhr
1 Kommentar
Hi.
This regex:
Regards
$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
(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 .Regards