基于单行的补丁文件

基于单行的补丁文件

我有一个文件:

unreliable, random content, multiple lines
this_line_is_always_the_same_and_never_repeated_in_file
unreliable, random content, SINGLE line
unreliable, random content, multiple lines

每行unreliable, random content, multiple lines都是随机数,包含随机文本

我正在尝试创建一个.patch文件,向上述文件添加 4 行,如下所示:

unreliable, random content, multiple lines
this_line_is_always_the_same_and_never_repeated_in_file
unreliable, random content, SINGLE line
my_new_line_1
my_new_line_2
...
unreliable, random content, multiple lines

(当我说随机时,它并不是真正随机的,我只是意味着没有两个被修补的文件会有相同的东西)

我不知道如何在两行之后添加内容,

任何帮助,将不胜感激

抱歉,如果我没有正确格式化这个问题

编辑:只是补充一下,我也不能依赖行号,这是我第一次尝试使用 diff 和 patch

答案1

统一格式的补丁文件只是一些以 开头的行作为前缀的块@@,其中给出了新旧文件中块的行号和长度,以及新旧文件的名称。因此,如果 always_the_same_line 是行号 30,则补丁文件将如下所示

--- old_file_name
+++ new_file_name
@@ -30,2 +30,4 @@
 this_line_is_always_the_same_and_never_repeated_in_file
 unreliable, random content, SINGLE line
+my_new_line_1
+my_new_line_2

使用 可以很容易地找到行号grep -n always_the_same_line,使用 可以找到包括作为尾随上下文的“不可靠、随机内容、单行”在内的前两行grep -A1 always_the_same_line,现在您只需要使用 或任何您最熟悉的格式进行一点格式化awkperl就可以以所需的格式生成补丁文件。

相关内容