Powershell从字符串中删除随机数字

时间:2016-12-29 19:13:27

标签: powershell csv

这应该很简单,但它让我发疯。我有一个带有列的csv,例如

$数据

何-me1234

何-me345667

何-me32123556

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

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

1 个答案:

答案 0 :(得分: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+ - 一位或多位
  • $ - 在字符串的末尾