0

diff の出力をファイルに書き込むのに少し問題があります。新しいバージョンと古いバージョンの .strings ファイルがあり、これら 2 つのファイルの差分を .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 でエンコードされたファイルに出力する方法はありますか?

2 番目のコマンドで 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 に答える