sed -i doesent在MacOs上工作(sed:1)并在linux上工作

时间:2018-03-20 10:20:43

标签: linux bash shell sed command-line

我成功地在Linux上使用sed -i来修改文件中的JSON值。

$> sed -i '/brand/c\   \"brand\": \"'valueModified'\"' ./config/brand.config.json

但是在MacOS上我得到了:

  

sed:1:“。/ config / brand.config.json”:命令代码无效。

我正在尝试在linux和macOS上的shell脚本中使用此命令。

谢谢

1 个答案:

答案 0 :(得分:0)

POSIX sed实现允许I-line替换,而非POSIX UNIX实现则不允许。 OSX和BSD实现一样可以这样完成:

cp -p ./config/brand.config.json ./config/brand.config.json.tmp;
sed '/brand/c\   \"brand\": \"'valueModified'\"' ./config/brand.config.json.tmp > ./config/brand.config.json