私の問題は再現が非常に簡単で、10.8.3 にバンドルされている "tr" のデフォルト バージョンを使用して OSX でのみテストしました。
私がするときはいつでも:
git diff --numstat <sha1> <sha2>
その結果、次のようになります。
1 1 test.php
それらの間の区切り文字がすべてスペースであることに注意してください。ここで、そのコマンドを tr に直接パイプして、次のようにこれらのスペースを絞り出すと、次のようになります。
git diff --numstat <sha1> <sha2> | tr -s ' '
すべてのスペースが 1 つのタブ文字に変換されます (ここに貼り付けようとしましたが、実際には機能しませんでした)。
問題は、自分の bash を正しく思い出せば、これは予期された動作ではないということです。また、これをテキスト ファイルに入れ、テキスト ファイルを cat-ing し、まったく同じパイプを介して tr-ing することでこれを複製しようとしたところ、期待どおりに機能しました。
これがなぜなのか、どのようにうまく回避するのか知っている人はいますか?
私の最終目標は、これらの結果を python で解析することです。これは、2 つの数字とファイル名を区切るスペースが 1 つしかない場合に非常に簡単です。