我在获取diff的输出以写入文件时遇到了一些麻烦。我有一个.strings文件的新旧版本,我希望能够将这两个文件之间的差异写入.strings.diff文件。
我现在就在这里:
diff -u -a -B $PROJECT_DIR/new/Localizable.strings $PROJECT_DIR/old/Localizable.strings >> $PROJECT_DIR/diff/Localizable.strings.diff
fgrep + $PROJECT_DIR/diff/Localizable.strings.diff > $PROJECT_DIR/diff/Localizable.txt
diff命令的结果写入Localizable.strings.diff没有任何问题,但Localizable.strings.diff似乎是一个二进制文件。有没有办法将diff输出到UTF-8编码文件?
请注意,我正在尝试只是在我的第二个命令中使用fgrep获取添加内容。如果有更简单的方法,请告诉我。
谢谢,
肖恩
答案 0 :(得分:1)
首先,您可能需要确定Localizable.strings文件的编码。例如,这可以通过How to find encoding of a file in Unix via script(s)描述的方式完成。
然后,您可能需要使用类似iconv
之类的工具将Localizable.strings文件转换为UTF-8:
iconv -f x -t UTF-8 $PROJECT_DIR/new/Localizable.strings >Localizable.strings.new.utf8 iconv -f x -t UTF-8 $PROJECT_DIR/old/Localizable.strings >Localizable.strings.old.utf8
其中x
是iconv识别的形式中的实际编码。您可以使用iconv --list
来显示它所知道的所有编码。
然后,您可能需要在不必使用-a
的情况下进行区分。
diff -u -B Localizable.strings.old.utf8 Localizable.strings.new.utf8 >Localizable.strings.diff.utf8