j'ai un fichier:
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
chacune des unreliable, random content, multiple lines
est un nombre aléatoire de lignes, avec du texte aléatoire
J'essaie de créer un .patch
fichier qui ajoute 4 lignes au fichier ci-dessus, comme ceci:
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
(Quand je dis aléatoire, ce n'est pas vraiment aléatoire, je veux juste dire qu'aucun fichier en cours de correction n'aura les mêmes choses)
Je ne sais pas comment ajouter du contenu 2 lignes après une ligne,
Toute aide serait appréciée
désolé si je n'ai pas formaté cette question correctement
EDIT: j'ajoute simplement que je ne peux pas compter sur les numéros de ligne non plus, et que c'est la première fois que j'essaie d'utiliser diff et patch
sed
ou similaire ? Ceux-ci sont destinés à la correspondance de modèle et pourraient ajouter du contenu. Whilepatch
devrait appliquerdiff
un fichier à un fichier. Adiff
est une comparaison ligne par ligne.Réponses:
Un fichier de correctif au format unifié est constitué d'un certain nombre de morceaux précédés d'une ligne commençant par
@@
, qui donne le numéro de ligne et la longueur du morceau dans l'ancien et le nouveau fichier, ainsi que le nom de l'ancien et du nouveau fichier au début. Ainsi, si, par exemple, always_the_same_line est le numéro de ligne 30, le fichier de correctif ressemblerait àLe numéro de ligne est facile à trouver avec
grep -n always_the_same_line
les deux premières lignes, y compris le "contenu aléatoire non fiable, SINGLE ligne", car le contexte de fin peut être trouvé avecgrep -A1 always_the_same_line
, et maintenant vous avez juste besoin d'un formatage peu à l'aideawk
,perl
ou de tout ce que vous maîtrisez le mieux. produire le fichier de correctif au format requis.la source