我正在从diff diff -u $i /tmp/b/${i#/tmp/a/} > /tmp/patch/$j.patch
创建.patch文件,我想问一下如何更改每个补丁文件头中的文件名。现在我有/tmp/a/...
我希望a/...
谢谢
答案 0 :(得分:2)
AFAIK在diff
中没有直接选项。使用patch时使用-p <num>
选项来剥离路径时应用差异。在您的情况下,-p2
会给出所需的结果。
答案 1 :(得分:2)
也许我不明白,但如果你只是在“坐”/ tmp时开始你的过程
提供diff
相对路径 - 它不会起作用吗?似乎为我工作
(p.s.不知道你的外循环或$ i&amp; $ j之间的差异是什么,所以用我自己的例子和FLAT树)
cd /tmp
for i in a/*; do
diff -u "${i}" "b/${i#a/}" > "/tmp/patch/${i#a/}.patch"
done
答案 2 :(得分:1)
您还可以使用sed
等更改每个补丁文件中的文本。然后使用diff
验证更改。如果你弄错了,你可以弄清楚应用于diff输出的diff的输出,有趣的是:)