我正在尝试修复其中包含尾随,\r\n
的CSV文件。无论我做什么,它根本不做任何事情。我尝试将表达式放在[]
中,这使得它替换每个逗号。这意味着问题在于它无法与换行符匹配。
我使用Sublime Text保存了包含Windows行结尾的文件,并尝试了\r\n
,\n\r
和\n
的两种变体。
(Get-Content file.txt) | ForEach-Object { $_ -replace '\,\r\n', [System.Environmen
t]::NewLine } | Set-Content file2.txt
我正在使用PowerShell版本5.1.15063.413
答案 0 :(得分:1)
PowerShell非常...... 特殊。
默认情况下, Get-Content
返回一个字符串数组。它找到所有新行字符并使用它们将输入拆分为所述数组。这意味着正则表达式不存在匹配的正则行。
使用-Raw
参数对此命令略有不同,修复了我的问题。
(Get-Content file.txt -Raw).replace(",`r`n", [System.Environment]::NewLine) | Set-Content file2.txt