我有一个文件:
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
,现在您只需要使用 或任何您最熟悉的格式进行一点格式化awk
,perl
就可以以所需的格式生成补丁文件。