Файл патча в унифицированном формате - это просто количество фрагментов, начинающихся с строки, начинающейся с @@
, которая дает номер строки и длину фрагмента в старом и новом файле, а также имя старого и нового файла в начале. Так что если, например, 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
что вам удобнее всего. создайте файл патча в необходимом формате.