我的问题很容易复制,我只在 OSX 上使用与 10.8.3 捆绑在一起的默认版本“tr”对其进行了测试。
每当我做一个:
git diff --numstat <sha1> <sha2>
结果如下:
1 1 test.php
注意这些字符之间的分隔字符都是空格。现在,当我将该命令直接通过管道传递到 tr 以按如下方式挤出这些空间时:
git diff --numstat <sha1> <sha2> | tr -s ' '
它会导致所有空格都转换为一个制表符(我试图将其粘贴到此处,但实际上并没有用)。
问题是,如果我正确地记得我的 bash,这根本不是预期的行为。此外,当我尝试通过将其放入文本文件中来复制它时,对文本文件进行 cat-ing 并通过相同的管道对其进行 tr-ing,它确实按预期工作。
有谁知道这是为什么,你将如何优雅地解决它?
我的最终目标是在 python 中解析这些结果,如果两个数字和文件名之间只有一个空格,这会容易得多。