为什么正则表达式模式\ r \ n?= $在Powershell中不起作用?

问题描述

我有一个文本文件,我想删除文件中的最后一个换行符:
Text


在Powershell中具有以下正则表达式:

(Get-Content .\test.txt -Raw) -replace ('\r\n(?=$)','') | Set-Content .\test.txt

但这不起作用。

我已经尝试过正则表达式模式:\ r \ n(?= $)在Notepad ++和Java中由''代替,并且可以正常工作。

如何在Powershell中使用它?

解决方法

您需要将EOL转换为适当的格式。 Linux和Dos具有不同的行尾参数,而JSON使用Linux'。