这应该很简单,但它让我发疯。我有一个带有列的csv,例如
$数据
何-me1234
何-me345667
何-me32123556
我无法弄清楚如何更换或修剪Ho-me末尾的随机数,因为我不了解通配符部分。我已经阅读并尝试了大量的例子,但似乎无法得到任何工作。如何在HO-ME文本前面声明通配符?
更新我无法从CSV中删除所有数字,我需要保留CSV中的数字。
答案 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+
- 一位或多位$
- 在字符串的末尾