একটি শিরোলেখ বা অজানা প্রবাহে শিরোনাম এবং / অথবা পাদচরণ যুক্ত করবেন কীভাবে?


13

আমার কাছে প্রচুর আউটপুট সেড এবং অ্যাজকের মধ্য দিয়ে যাচ্ছে।

আমি কীভাবে START দিয়ে আউটপুট উপসর্গ করতে পারি এবং উত্তরটির সাথে প্রত্যয়টি শেষ করতে পারি?

উদাহরণস্বরূপ, আমি যদি

All this code
on all these lines
and all these

আমি কীভাবে পেতে পারি:

START
All this code
on all these lines
and all these
END

?

আমার চেষ্টা ছিল:

awk '{print "START";print;print "END"}'

তবে আমি পেয়েছি

...
START
    All this code
END
START
    on all these lines
END
START
    and all these
END

উত্তর:



11

এই কাজ করা যেতে পারে sedসঙ্গে

sed -e $'1i\\\nSTART' -e $'$a\\\nEND'

1iআমি লাইন 1 এর আগে nsert মানে ; শেষ লাইনের পরে একটি পেপেন্ড $aমানে means সিনট্যাক্স ব্যাশ-নির্দিষ্ট। অন্যান্য শেলগুলিতে আপনার সাথে এটি করতে সক্ষম হওয়া উচিত:$'…'

sed -e '1i \ Enter
START' -e '$ a \ Enter
END'Enter

8

আপনি যদি ইতিমধ্যে সেড ব্যবহার করছেন তবে আপনি 1প্রথম লাইনের $সাথে মেলে এবং শেষ লাইনের সাথে মিলিয়ে যেতে ( স্কটের উত্তর দেখুন ) ব্যবহার করতে পারেন । আপনি যদি ইতিমধ্যে awk ব্যবহার করে থাকেন তবে আপনি BEGINপ্রথম লাইনের আগে কোড চালানোর জন্য একটি ENDব্লক এবং শেষ লাইনের পরে কোড চালানোর জন্য একটি ব্লক ব্যবহার করতে পারেন ( মাইকেল ডুরান্টের উত্তর দেখুন )।

আপনার যা করতে হবে তা হ'ল শিরোনাম এবং একটি পাদচরণ যুক্ত করুন, কেবল echoএবং ব্যবহার করুন cat

echo START
cat
echo END

পাইপলাইনে, একাধিক কমান্ড চালানোর { … }জন্য, পার্সারকে বলুন যে তারা একক যৌগিক কমান্ড।

content-generator |
{ echo START; cat; echo END; } |
postprocessor
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.