首页 > 解决方案 > 如何修复 MacOS 上的 sed 命令,在 c 命令末尾的 \ 后出现错误额外字符?

问题描述

以下 sed 命令适用于 Linux 和 Windows,但在 MacOS/BSD 上失败:

sed -i '/"appId"/c\  \"appId":\  \"'${applicationId}'\",' $capacitorConfigJson

我试图添加''-e

sed -i ' ' -e '/"appId"/c\  \"appId":\  \"'${applicationId}'\",' $capacitorConfigJson

然后脚本失败并出现错误:

sed: 1: "/"appId"/c\  \"appId":\ ...": extra characters after \ at the end of c command

我找到了在 c\ 之后添加换行符的类似解决方案,但它似乎不起作用。

标签: macossed

解决方案


在 BSD (OSX) 上试试这个sed

sed -i.bak '/"appId"/c\ 
"appId": "'${applicationId}'",
' "$capacitorConfigJson"

注意后面有个空格c\


推荐阅读