You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed命令实现条件化搜索替换不同的PRODUCT_BUNDLE_IDENTIFIER值?

用sed实现差异化替换Bundle Identifier

要针对不同的Bundle Identifier做差异化替换,你可以给sed叠加多个替换规则,每个规则对应一组替换需求:

方法一:精准匹配整行替换

直接针对目标行做精准替换,命令如下:

sed -i -e 's/PRODUCT_BUNDLE_IDENTIFIER = "BundleA";/PRODUCT_BUNDLE_IDENTIFIER = "BundleZ";/' -e 's/PRODUCT_BUNDLE_IDENTIFIER = "BundleB";/PRODUCT_BUNDLE_IDENTIFIER = "BundleX";/' text.txt

方法二:正则捕获组适配格式差异

如果配置文件里PRODUCT_BUNDLE_IDENTIFIER行的空格可能有细微变化(比如等号前后空格数量不同),可以用正则捕获组锁定固定部分,只替换Bundle名称:

sed -i -e 's/\(PRODUCT_BUNDLE_IDENTIFIER = "\)BundleA\(";\)/\1BundleZ\2/' -e 's/\(PRODUCT_BUNDLE_IDENTIFIER = "\)BundleB\(";\)/\1BundleX\2/' text.txt

这里\( \)用来捕获需要保留的前后文本,\1和\2分别引用捕获到的内容,确保只替换中间的Bundle名称部分。

替换后效果

执行命令后,你的text.txt内容会变成:

{
    2D02E40000B4A5E006451C7 /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            PRODUCT_BUNDLE_IDENTIFIER = "BundleZ";
        
        };
        name = Debug;
    };
    2D02E4981E0000006451C7 /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            PRODUCT_BUNDLE_IDENTIFIER = "BundleX";
        };
        name = Release;
    };
}

内容的提问来源于stack exchange,提问作者wong john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:40:36