2016-12-29 48 views
-1

这应该很简单,但它使我疯狂。我有例如列Powershell从字符串中删除随机数字

$数据

浩me1234

浩me345667

豪me32123556一个CSV

我无法弄清楚如何更换或修剪因为我不理解通配符部分,所以随机数字离开了Ho-me的结尾。我已经阅读并尝试了大量的例子,但似乎没有任何工作。如何在文本HO-ME前面声明通配符?

更新我无法从CSV中删除所有数字,我需要保留CSV中的数字。

+2

实施例的端部:' “浩me23442” -replace '\ d + $', ''' –

+2

$数据| %{$ _。修剪('1234567890')} – 4c74356b41

+0

对不起,我应该已经更清楚了,我不能删除csv中的所有数字。 Bill_stewart这些数字是随机的,所以我不能呼叫“Ho-me23442” – doobis

回答

2

像你的输入文件那样的注释中的声音看起来不像你在问题中描述的那样。假设您的CSV看上去更像是这样的:

OtherColumn,InterestingColumn 
62812974831,Ho-me1234 
13021568343,Ho-me345667 
25166647926,Ho-me32123556 

管它ForEach-Object并应用-replace操作suggested by Bill_Stewart in the comments

Import-Csv .\input.csv |ForEach-Object { 
    $_.InterestingColumn = $_.InterestingColumn -replace '\d+$','' 
    $_ 
} |Export-Csv .\output.csv 

你可以把它分成两个单独的语句来覆盖输入文件:

$data = Import-Csv .\input.csv 
$data |ForEach-Object { 
    $_.InterestingColumn = $_.InterestingColumn -replace '\d+$','' 
    $_ 
} |Export-Csv .\input.csv -Force 

正则表达式模式很简单:

  • \d+ - 1个或多个数字
  • $ - 在字符串
+0

工作!但只是想知道是否有办法将它保存在同一个文件中?如果不是那样的话。你也可以解释一下如何修复它吗? – doobis