如何在使用 diff3 时将选项传递给 diff 命令



diff支持macOS Sierra上diff3不支持的选项。例如,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=...直接在命令行中传递选项?

谢谢

问题是diff3将使用以下参数调用指定的diff命令: --horizon-lines=100 -- F1 F2其中F1F2是文件参数。你写mydiff的方式,当你运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,这将被执行:

diff -b --horizon-lines=100 --

如果运行此操作,则会收到相同的错误。

正确的写法mydiff

#!/bin/sh
diff -b "$@"

不,不幸的是,没有办法以某种方式内联diff -b,您需要创建一个专用脚本以使其与 diff3 一起使用。

相关内容

  • 没有找到相关文章

最新更新