我需要在xCode构建期间替换swift代码中的某些值。 我的快捷代码就像:
struct KeyConstants {
static let uniqueKeyName = "some key"
}
我添加了一个构建阶段并编写了一些脚本来用旧值替换旧值:
NEW_VALUE=$"new value"
find . -type f -name 'MyFile.swift' -exec sed -i '' s/"uniqueKeyName = \"(.*?)\""/"uniqueKeyName = \"${NEW_VALUE}\""/ {} +
我认为问题是正则表达式,它适用于某些在线正则表达式工具但不适用于bash。
sed "s/uniqueKeyName = \"(.*?)\"/uniqueKeyName = \"new value\"/g" file.txt
请提前帮助,谢谢。
答案 0 :(得分:0)
我从this post找到了解决方案。使用"[^"]*"
代替"(.*?)"
。
find ${FILE_PATH} -type f -name '*.swift' -exec sed -i '' "s/uniqueKeyName = \"[^\"]*\"/uniqueKeyName = \"${NEW_VALUE}\"/" {} +