diff支持diff3在macOS Sierra上不支持的选项。例如,diff支持忽略空格更改的-b选项,但diff3不支持。
但是,diff3支持选项--diff-program,我认为它可以用来传递一个程序,该程序将使用所需的选项调用diff。
因此,我创建了一个像这样的程序mydiff:
diff -b $1 $2但是,当在命令行上运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,我得到了以下错误:
diff: missing operand after `--'
diff: Try `diff --help' for more information.
diff3: subsidiary program `./mydiff' failed如何解决这一问题?
是否有一种方法可以避免创建mydiff并通过设置--diff-program=...直接在命令行中传递选项?
谢谢
发布于 2017-11-02 18:27:27
问题是diff3将使用以下参数调用指定的diff命令:--horizon-lines=100 -- F1 F2,其中F1和F2是文件参数。您编写mydiff的方式,当您运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,它将被执行:
diff -b --horizon-lines=100 --如果你运行这个,你会得到同样的错误。
编写mydiff的正确方法
#!/bin/sh
diff -b "$@"不,不幸的是,没有办法以内联的方式编写diff -b,您需要创建一个专用的脚本来使它与diff3一起工作。
https://stackoverflow.com/questions/47081136
复制相似问题