作为构建过程的一部分,我正在尝试从命令行修改xcode项目文件。
我要更改:
...
SystemCapabilities = {
com.apple.InAppPurchase = {
enabled = 0;
};
};
...
对此:
...
SystemCapabilities = {
com.apple.InAppPurchase = {
enabled = 1;
};
};
...
我可以用来解决此问题的最简单的解决方案是运行:
sed -i '' 's/enabled = 0/enabled = 1/' myapp.pbxproj
但是,我觉得这很危险,因为即使它可以工作,但是如果文件中的其他地方有enabled = 0
也会有问题。是否有更好的方法使用sed
来确保我仅将enabled = 0
对象中的com.apple.InAppPurchase
的特定实例作为目标?
答案 0 :(得分:1)
您可以使用地址范围告诉sed仅在com.apple.InAppPurchase
和}
之间应用替换:
sed '/com\.apple\.InAppPurchase/,/}/s/enabled = 0/enabled = 1/'