无法在Windows命令提示符中使用sed命令,因为“地址正则表达式未终止”

tpxzln5u  于 2022-11-26  发布在  Windows
关注(0)|答案(1)|浏览(139)

我试图在Windows机器上从命令提示符(CMD.exe)运行sed命令,但我很难理解正则表达式,以及在Windows上运行时如何正确地转义字符串。理想情况下,我希望开发一个跨UNIX和Windows工作的解决方案。
sed在Windows上不可用,所以我已经通过gnuWin32 project安装了它,运行良好。
该命令的Unix为:
sed -i '' -e 's/\\/_next/\\.\\/next/g' out/**.html
通过一个试错的过程,我已经设法做到这一点:
sed -i \'\' -e \'s/\\/_next/\\.\\/next/g\' out/**.html
但是我得到一个错误:sed: -e expression #1, char 27: unterminated address regex
所以我的正则表达式肯定有问题,可能是不同部分的转义?有什么想法我可以去解决这个问题吗?

更新:我从here获得代码,不幸的是,只有Linux和OSX被覆盖。

guicsvcw

guicsvcw1#

您需要使用

sed -i "s/\\/_next/\\.\\/next/g" out/**.html

Windows GNU sed不需要-i选项后的''空参数,它们可以安全地删除。
此外,Windows控制台中的sed命令应该用双引号括起来。

相关问题