arquivo de correção baseado em linha única

1

eu tenho um arquivo:

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

cada um dos unreliable, random content, multiple lines é um número aleatório de linhas, com texto aleatório

Eu estou tentando criar um arquivo .patch que adiciona 4 linhas ao arquivo acima como este:

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

(quando eu digo aleatório, não é realmente aleatório, eu só quero dizer que não há 2 arquivos sendo corrigidos terão as mesmas coisas)

não tenho ideia de como adicionar conteúdo a 2 linhas depois de uma linha,

qualquer ajuda seria apreciada

desculpe se eu não tiver formatado corretamente esta questão

EDIT: apenas adicionando que eu não posso confiar em números de linha, e esta é a minha primeira vez tentando usar diff e patch

    
por robert k 10.02.2017 / 07:46

1 resposta

0

Um arquivo de patch no formato unificado é apenas um número de blocos prefixados por uma linha que começa com @@ , que fornece o número da linha e a extensão do trecho no arquivo antigo e novo e o nome do antigo e do novo arquivo no início. Então, se, e. o always_the_same_line é o número da linha 30, o arquivo de patch seria parecido com

--- 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

O número da linha é fácil de encontrar com grep -n always_the_same_line , as duas linhas iniciais incluindo o "conteúdo não confiável, aleatório, linha ÚNICA" como contexto final podem ser encontradas com grep -A1 always_the_same_line , e agora você só precisa de uma formatação usando awk , perl ou o que você achar mais confortável para produzir o arquivo de correção no formato necessário.

    
por 10.02.2017 / 09:18

Tags