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}
?
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}
?
जवाबों:
;/@/{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.
/@/ # For pattern-space containing the character @ do the following
{
h # place a copy of the pattern-space into the hold-space
s/test/next/g # replace all instances of "test" with "next" in the pattern-space
x # swap the pattern-space with the hold-space
G # append a newline followed by contents of hold-space to the pattern-space
}
इसलिए, @ वाली प्रत्येक पंक्ति के लिए, पैटर्न-स्पेस का संशोधित संस्करण मूल (इसके बाद होल्ड-स्पेस अनमॉडिफाइड संस्करण होता है) को प्रिंट किया जाएगा।
Sed के लिए कमांड सारांश देखें