如何使用powershell删除和替换字符



我正在尝试删除一个&quot-"导入数据列中的短划线。我只是不知道该怎么做,任何帮助都将不胜感激。

我正在做的过程是从现有的CSV文件中导入数据,进行一些更改,并将其导出到另一个CSV文件中以导入到应用程序中。该应用程序现在不再支持"-"Dash,所以我需要用空格代替它。

现有数据0001-00001,姓氏,名字首字母。

我的Powershell脚本

#Import Perfect Law File "clntsimp.imp" File inserting Headers inot the existing data
Import-Csv clntsimp.imp -Header Name,LastName,FirstName |
#Piped above information and remove the "-" from the "Name" column and add a "Blank Space"
$Content = Get-Content $_."
ForEach-Object { $Content -replace "-", " "}} |
#Piped above information and combine the "LastName" and "FirstName" Fields inot a single field named "Description" seperated by a "," and "Blank Space"
Select-Object *,@{Name='Description';Expression={$_.Lastname,$_.FirstName -join ', '}} |
#piped above information adding a third column header "Status" and fill in the rows with "Active"
Select-Object Name,Description,@{Name='Status';Expression={'Active'}} |
#Piped above information and export to a new file named "Sendpro.cvs" 
Export-Csv sendpro1.csv -NoTypeInformation

我正在寻找的结果是

"名称"描述"状态";"0001 00001"姓氏,名字首字母&""活动";

除了下面的这个新部分,一切都如预期,我只是不知道如何替换"-"Dash有一个空间来容纳我需要进行的更改

#Piped above information and remove the "-" from the "Name" column and add a "Blank Space"
$Content = Get-Content $_.Name"
ForEach-Object { $Content -replace "-", " "}} |

任何帮助都将不胜感激,我仍在学习Powershell。感谢

在您的-Replace '-',' '示例中,应该已经满足了所有需要。有不少语法问题,但我认为这是由于您对代码进行了清理。话虽如此,您可以使用pscustomobject来重新排序属性的结构。

Import-Csv .clntsimp.imp -Header Name, LastName, FirstName | ForEach-Object -Process {
[pscustomobject]@{
Name        = $_.Name -replace 'p{Pd}',' '
Description = $_.LastName, $_.FirstName -join ', '
Status      = 'Active'
}
} #| Export-Csv -Path .sendpro1.csv -NoTypeInformation

这允许通过将属性分配给pscustomobject来进行一些代码更改。现在,剩下的就是导出回一个新的csv。

至于'p{Pd}',' '部分,由于-Replace是RegEx运算符,您可以使用该Unicode类来覆盖em短划线和连字符(只是为了以防万一,这就是为什么它不能"工作">(。

相关内容

  • 没有找到相关文章

最新更新