在 PowerShell 脚本中,我将从 SQL Server 查询读取的数据导出到制表符分隔的 .csv 文件中。我需要删除所有回车符。
-replace '`r`n'
不起作用。我觉得这个角色是char(13)
。
这是我的代码行不起作用:
(Get-Content $MyCSV_DOR) | % {$_ -replace '`r`n', " "} | out-file -FilePath $MyCSV_DOR -Force -Encoding ascii
我也尝试过以下方法:
`r, `n, \r, \n and \r\n
他们都未能删除角色。我还查看了建议的其他帖子。
有什么建议吗?
默认情况下,
get-content
会自动将文件拆分为换行符上的行,如果out-file
收到行数组,则会将换行符放回原处。所以你的 -replace
什么也不做,因为换行符已经被 Get-Content
删除了。您需要使用 -raw
参数将文件作为单个文本块读取。以下应该做你想要的
(Get-Content -Raw $MyCSV_DOR) -replace "[`r`n']+, ' ' |
Out-File -FilePath $MyCSV_DOR -Force -Encoding ascii -nonewline
注意:我更改了替换模式,以用单个空格替换一个或多个回车符或换行符的任何序列
使用正则表达式匹配:-replace "[ ]"," "