我必须在文件Localizable.strings(iOS文件)中的所有位置替换字符串。
请下载此文件here
例如:我需要将“terms”替换为“xxxx”
我尝试了所有可能性:
perl -ps 's/terms/xxxx/g' localizable.strings sed -i "" "s/terms/xxxx/g' localizable.strings cat localizable.strings | awk '{gsub(/terms/,"xxxx")}1'
我认为这个localizable.strings文件包含“unicode”字符,所以我添加:
LANG=C LC_ALL=C
在perl,sed和awk之前。但它不起作用。
答案 0 :(得分:1)
以下是您文件的内容:
00000000: 0a2f 002a 0020 006c 006f 0063 006f 003a ./.*. .l.o.c.o.:
00000010: 0035 0039 0034 0031 0030 0066 0039 0031 .5.9.4.1.0.f.9.1
00000020: 0035 0032 0065 0031 0061 0031 0030 0062 .5.2.e.1.a.1.0.b
00000030: 0036 0036 0038 0062 0034 0035 0036 0064 .6.6.8.b.4.5.6.d
00000040: 0020 002a 002f 000a 0022 0074 0065 0072 . .*./...".t.e.r
00000050: 006d 0073 005f 0061 006e 0064 005f 0063 .m.s._.a.n.d._.c
00000060: 006f 006e 0064 0069 0074 0069 006f 006e .o.n.d.i.t.i.o.n
00000070: 0073 005f 0061 0063 0063 0065 0070 0074 .s._.a.c.c.e.p.t
00000080: 0022 0020 003d 0020 0022 0061 0063 0063 .". .=. .".a.c.c
00000090: 0065 0070 0074 0065 0072 0022 003b 000a .e.p.t.e.r.".;..
注意:建议您使用UTF-8编码保存字符串文件,这是标准字符串文件的默认编码。 Xcode会在将字符串文件复制到产品时自动将UTF-8中的字符串文件转码为UTF-16。 (强调我的)
也就是说,您正在处理以UTF-16编码的文件。您需要解码然后进行替换。或者,您可以在原始文件上进行替换,然后再将其添加到Xcode中。
我尝试了所有可能性。
我不这么认为。
答案 1 :(得分:-1)
我尝试了所有可能性:
我认为你没有,是吗?
您是否尝试阅读Perl's command line options上的文档?
-e
:定义您要运行的代码-p
:遍历输入文件,运行代码并在循环的每次迭代中打印输出-i
:将更改写回原始文件(更好的是,-i.bak
也会为您提供备份文件)因此,更新文件的基本方法是:
perl -p -i.bak -e's/terms/xxxxx/g' localizable.strings