এই সেড কমান্ডটির অর্থ কী: `; / @ / {h; s / test / next / g; x; G}`?


9
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}?

উত্তর:


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

আপনার উত্তর মাধ্যমে আমার সমস্যা সম্পূর্ণ সমাধান। আপনাকে ধন্যবাদ ^^
থমাস কোয়ান

6
/@/ # 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
}

সুতরাং, @ যুক্ত প্রতিটি লাইনের জন্য, প্যাটার্ন-স্পেসের পরিবর্তিত সংস্করণটি মুদ্রিত হবে তারপরে মূলটি (হোল্ড-স্পেসে অবিচ্ছিন্ন সংস্করণ রয়েছে)।

শেডের জন্য কমান্ডের সংক্ষিপ্তসারটি দেখুন


আপনাকে অনেক ধন্যবাদ :) আপনার উত্তরটি আমার পক্ষে সত্যই সহায়ক। ^^
থমাস কোয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.