我有一个bash脚本,它将php常量替换为所需的常量,例如define('xxxx',....);
签署人:

sudo sed -E -i "" "s/^(define).*(${2})[\'|\"].*/${3}/g" "$file"

问题是在ubuntu上,由于i之后的额外空间,它失败了。
-i ""

如果我删除这个空间,它将在ubuntu上工作,但在macos上不工作,例如给出一个错误。
sed: 1: "../config.php ...": invalid command code

我有什么办法可以在尼克斯和平地执行这个命令?
提前感谢您的时间和知识。

最佳答案

sudo perl -pi -e "s/^(define).*(${2})[\'|\"].*/${3}/g" "$file"

不过,我怀疑你的意思是。

关于linux - 如何修复SED就地替换Mac OS和Ubuntu问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10811458/

10-11 07:12