sed -e 's/72;/72, next_val = 0x11111111;/;/@/{h;s/test/next/g;x;G}'
fmt_vuln.c > fmt_vuln2.c
pourriez-vous me dire quel est le sens de ;/@/{h;s/test/next/g;x;G}
?
;/@/{h;s/test/next/g;x;G}?
/@/ search for an `@` sign
{} for the lines where that is true do this 'block' of code
h put the pattern match in the hold space
s/ substitute test for next everywhere in the space
g do the previous substitution for all matches on the line
x swap the hold with the pattern space
G Add a new line with the contents of the hold space.
Ainsi, pour chaque ligne contenant un @, la version modifiée de l'espace de motif sera imprimée suivie de l'original (l'espace de maintien contient la version non modifiée).
voir le résumé des commandes pour Sed
la source