このsedコマンド `;/@/{h;s/test/next/g;x;G}`の意味は何ですか?

このsedコマンド `;/@/{h;s/test/next/g;x;G}`の意味は何ですか?
sed -e 's/72;/72, next_val = 0x11111111;/;/@/{h;s/test/next/g;x;G}'
fmt_vuln.c > fmt_vuln2.c

どういう意味か教えていただけますか;/@/{h;s/test/next/g;x;G}

ベストアンサー1

;/@/{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.

おすすめ記事