You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成仅含插入内容的单向diff补丁(不含原文件数据)

实现仅保留插入内容的单向补丁

要生成只包含插入内容、完全剔除原文件信息的patch,你可以通过两种方式实现:

方法1:使用diff原生自定义格式选项

直接利用diff的格式控制参数,只输出新增内容:

diff --changed-group-format='%>' --unchanged-group-format='' <(xxd "originalFile") <(xxd "updatedFile") > "originalFile.patch"

参数说明:

  • --changed-group-format='%>':指定修改块仅显示新文件(updatedFile的xxd输出)中的内容
  • --unchanged-group-format='':完全忽略未修改的内容块

这种方式由diff原生处理,输出结果精准,不会引入额外的过滤误差。

方法2:用grep过滤diff输出

如果更习惯用基础工具组合,也可以在原有diff命令后追加过滤逻辑:

diff -u <(xxd "originalFile") <(xxd "updatedFile") | grep '^+' | grep -v '^+++' > "originalFile.patch"

逻辑说明:

  • grep '^+':筛选所有以+开头的行(对应diff中的新增内容)
  • grep -v '^+++':排除diff头部的+++行(该行仅标记新文件路径,不属于实际插入内容)

两种方式生成的patch都只包含xxd转换后的新增行,完全不涉及原文件的任何数据,满足你单向分发补丁且不共享原数据的需求。

内容的提问来源于stack exchange,提问作者datapagan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:36:18