我正在尝试使用具有这样的标记的Linux diff命令创建一个diff文件(取自diff3手册页):
<<<<<<< mine
lines from mine
=======
lines from yours
>>>>>>> yours
Run Code Online (Sandbox Code Playgroud)
这种格式对我来说非常直观,并且允许我轻松地修复vim中的合并冲突,当我尝试使用diff3合并三个文件(我的,你的和原始文件)时它很有用,但我想从普通差异中获得相同的格式.我希望这很简单,但我无法得到它.我已经尝试了大多数主要选项(-e,-ed等)甚至尝试创建--changed-group-format但是没有成功.
希望这很简单,我只是忽略了.
更新:
两个文件差异示例,添加了行,删除行和冲突行:

你可以玩diff选项.下面的shell脚本
diff \
--unchanged-group-format='%=' \
--old-group-format='' \
--new-group-format='%>' \
--changed-group-format='<<<<<<< mine
%<=======
%>>>>>>>> yours
' \
orig.txt new.txt
Run Code Online (Sandbox Code Playgroud)
输出
This has some stuff
in that gets
modified in
a later version
<<<<<<< mine
and there is a conflict
=======
and there is a conflict (like here)
>>>>>>> yours
about which version
should be used.
newline
Run Code Online (Sandbox Code Playgroud)
对于截图中的文件.你可以在文档中看到更多关于diff的格式化选项,例如这里.
一个班轮(从命令行工作,至少在Linux上):
diff --unchanged-group-format="%=" --old-group-format="" --new-group-format="%>" --changed-group-format="<<<<<<< mine%c'\\12'%<=======%c'\\12'%>>>>>>>> yours%c'\\12'" orig.txt new.txt
Run Code Online (Sandbox Code Playgroud)