0

我在将 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 似乎是一个二进制文件。有没有办法将差异输出到 UTF-8 编码文件?

请注意,我试图在我的第二个命令中使用 fgrep 来获取添加内容。如果有更简单的方法可以做到这一点,请告诉我。

谢谢,

肖恩

4

1 回答 1

1

首先,您可能需要识别 Localizable.strings 文件的编码。例如,这可以通过How to find encoding of a file in Unix via script(s)描述的方式完成。

然后可能您需要iconv使用类似以下命令的工具将 Localizable.strings 文件转换为 UTF-8:

iconv -fx -t UTF-8 $PROJECT_DIR/new/Localizable.strings >Localizable.strings.new.utf8
iconv -fx -t UTF-8 $PROJECT_DIR/old/Localizable.strings >Localizable.strings.old.utf8

xiconv 识别的形式的实际编码在哪里。您可以使用iconv --list它来显示它知道的所有编码。

然后,您可能需要 diff 而不必使用-a.

diff -u -B Localizable.strings.old.utf8 Localizable.strings.new.utf8 >Localizable.strings.diff.utf8
于 2012-10-30T19:40:48.267 回答