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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 307768
Url: https://administrator.de/contentid/307768
Printed on: April 26, 2024 at 18:04 o'clock
1 Comment
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