在package.json中使用sed替换斜杠时出现问题

问题描述 投票:0回答:1

我有一个 JSON 文件,数据中的文件路径不一致。

有些使用双反斜杠,有些使用正斜杠。

JSON object with inconsistent file paths

我正在尝试标准化数据中的文件路径。

此命令在终端上运行:

sed -i 's:\\\\:\/:g' file.json

我需要将其作为

package.json
脚本运行。

类似问题=在package.json中使用sed的问题

根据接受的答案...

shx sed -i 's:\\\\:\/:g'
<-- use the shx模块

shx sed -i \"s:\\\\:\/:g\"
<-- encase the
s
JSON 中的命令转义双引号

shx sed -i \"s:\\\\:\\/:g\"
<-- double escape the forward slash in the replacement string

这是最终的剧本...

sed in package.json

当我运行这个脚本时,我得到...

sed error in package.json

我尝试了几种变体但没有成功。

sed package.json
1个回答
0
投票

在命令行上运行您在

When I run this script I get...
下发布的脚本。它在那里也不起作用,它需要在正则表达式中加倍反斜杠。再看一下您链接到的已接受答案,并注意它的功能与
This is the final script...
下的代码之间的差异。它使用
/
作为 sed 分隔符,这就是为什么他们需要转义 sed 脚本中的每个
/
- 你使用
:
而不是
/
作为分隔符,所以你不应该转义
 /
位于脚本内。

在命令行上尝试一下:

sed -i "s:\\\\:/:g" file.json

这显然需要在你的 json 文件中:

shx sed -i "s:\\\\\\\\:/:g" file.json
© www.soinside.com 2019 - 2024. All rights reserved.