我正在尝试在 bash 中修补这样的文件:
cat << ''EOF | patch --dry-run
> --- urancid 2017-12-06 09:56:33.000000000 -0600 patch --dry-run
> +++ /tmp/urancid 2017-12-06 15:06:57.000000000 -0600
> @@ -393,7 +393,7 @@
> last if (/^$prompt/);
> next if (/-ac\.\s*/);
> next if (/-fs\.\s*/);
> - next if (/set date\s*/)
> + next if (/set date\s*/);
> next if (/^(\s*|\s*$cmd\s*)$/);
> if ( ! /^$prompt/) {
> if ( ! $skipprocess ) {
> EOF
但我得到的只是
patching file urancid
Hunk #1 FAILED at 393.
1 out of 1 hunk FAILED -- saving rejects to file urancid.rej
似乎应该是可能的,如果我粘贴我粘贴的补丁文件,它就可以工作。
我想这样做,这样我就可以制作一个不包含多个文件的补丁脚本。
到目前为止,我对“补丁”关心的内容不太熟悉,猜测存在一些空白问题?
在您的示例中修复空白以便可以应用补丁表明该概念是可以接受的(尽管我不明白为什么
cat
需要)。另一方面,如果您有一个空白对齐严重的补丁,我建议您使用该
--ignore-whitespace
参数。(您可以在补丁的手册页中找到它man patch
。)