如何修改";。“字符串”;iOS项目中的unix shell命令(或命令工具)文件?
我想在iOS项目中通过shell脚本动态修改“xxx.strings”文件如何修改";。“字符串”;iOS项目中的unix shell命令(或命令工具)文件?,ios,bash,shell,Ios,Bash,Shell,我想在iOS项目中通过shell脚本动态修改“xxx.strings”文件 它们是键值文件。有没有办法用键值替换键值 1.“InfoPlist.字符串”文件内容如下: CFBundleDisplayName = "WinTraining"; CFBundleDisplayName = "eDetailing"; "Item" = "Item"; "ProductName" = "Product Name"; "Today" = "Today"; "NetworkError" = "Unabl
它们是键值文件。有没有办法用键值替换键值 1.“InfoPlist.字符串”文件内容如下:
CFBundleDisplayName = "WinTraining";
CFBundleDisplayName = "eDetailing";
"Item" = "Item";
"ProductName" = "Product Name";
"Today" = "Today";
"NetworkError" = "Unable to connect to the network, please check the network";
"UploadComplete" = "Upload complete";
"Updating" = "Updating,Please wait...";
有人想将“WinTraining”更改为“eDetailing”,如下所示:
CFBundleDisplayName = "WinTraining";
CFBundleDisplayName = "eDetailing";
"Item" = "Item";
"ProductName" = "Product Name";
"Today" = "Today";
"NetworkError" = "Unable to connect to the network, please check the network";
"UploadComplete" = "Upload complete";
"Updating" = "Updating,Please wait...";
2.还有相同的多行文件名为“Localizable.strings”,如下所示:
CFBundleDisplayName = "WinTraining";
CFBundleDisplayName = "eDetailing";
"Item" = "Item";
"ProductName" = "Product Name";
"Today" = "Today";
"NetworkError" = "Unable to connect to the network, please check the network";
"UploadComplete" = "Upload complete";
"Updating" = "Updating,Please wait...";
我想在我的CI环境(jenkins)中修改“.strings”文件,Diffient jenkins的作业是为Diffient客户构建的)。在iOS项目中,“CbundleDisplayName”用于设置应用程序名称,不同的客户需要不同的应用程序名称,因此我需要更改“InfoPlist.string”文件。“Localizable.strings”,情况相同。向Jenkins作业设置中添加如下脚本
mv $WORKSPACE/InfoPlist.strings $WORKSPACE/InfoPlist.strings.orig
sed -e 's/WinTraining/eDetailing/' $WORKSPACE/InfoPlist.strings.orig > $WORKSPACE/InfoPlist.strings
将如下脚本添加到Jenkins作业设置中
mv $WORKSPACE/InfoPlist.strings $WORKSPACE/InfoPlist.strings.orig
sed -e 's/WinTraining/eDetailing/' $WORKSPACE/InfoPlist.strings.orig > $WORKSPACE/InfoPlist.strings
如果您有权访问
sed
命令,可以尝试:
sed -i 's/\"WinTraining\"/\"eDetailing\"/' InfoPlist.strings
sed命令也应该适用于Localizable.strings。要替换其他内容,请使用:
sed-i的/STRING\u TO\u SEARCH\u FOR/STRING\u TO\u替换为/u SEARCH\u STRING\u
确保转义引号等。如果您有权访问sed
命令,您可以尝试:
sed -i 's/\"WinTraining\"/\"eDetailing\"/' InfoPlist.strings
sed命令也应该适用于Localizable.strings。要替换其他内容,请使用:
sed-i的/STRING\u TO\u SEARCH\u FOR/STRING\u TO\u替换为/u SEARCH\u STRING\u
一定要避开引用之类的话。非常感谢Kazuki和MeetTitan,我从你的提示中找到了更好的方法。
我还使用sed
命令将值替换为键,如下所示:
InfoPlist.String:
Localizable.strings:
非常感谢Kazuki和MeetTitan,我在你的提示下找到了更好的方法。
我还使用sed
命令将值替换为键,如下所示:
InfoPlist.String:
Localizable.strings:
您能提供脚本的输入和输出示例吗?您到底想修改什么?为什么要这样做?如果你有一些字符串是动态的,为什么不动态地查找你的本地化字符串呢?@ShellFish,谢谢你的提醒。我已经编辑了我的问题。你能提供脚本的输入和输出示例吗?你到底想修改什么?为什么要这样做?如果你有一些字符串是动态的,为什么不动态地查找你的本地化字符串呢?@ShellFish,谢谢你的提醒。我已经编辑了我的问题。它们是键值文件。有没有办法用键替换值?它们是键值文件。有没有办法用键替换值?