小编PHD*_*PHD的帖子

用多行引用字符串替换 sed 参数

目标

将文本替换"scripts: {"为以下字符串

"scripts": {
    "watch": "tsc -w",
Run Code Online (Sandbox Code Playgroud)

在一个json文件中。

尝试

我为源字符串和目标字符串创建了两个变量:

第一次尝试

SRC='"scripts": {'
DST='"scripts": {
    "watch": "tsc -w",'
Run Code Online (Sandbox Code Playgroud)

并运行以下命令:

sed "s/$SRC/$DST/" foo.json
Run Code Online (Sandbox Code Playgroud)

这已经失败了。

第二次尝试

这次我转义了源字符串和目标字符串的双引号:

SRC="\"scripts\": {"
DST="\"scripts\": {
    \"watch\": \"tsc -w\",
    \"dev\": \"nodemon dist/index.js\","
Run Code Online (Sandbox Code Playgroud)

并运行与上面相同的命令,但失败了。

第三次和第四次尝试

我使用以下命令尝试了如上定义的变量:

sed 's/'"$SRC"'/'"$DST"'/' foo.json
Run Code Online (Sandbox Code Playgroud)

这已经失败了。

所有这些尝试都产生了错误

unterminated 's' command
Run Code Online (Sandbox Code Playgroud)

出了什么问题?

sed json

5
推荐指数
2
解决办法
369
查看次数

标签 统计

json ×1

sed ×1