আমার filename
ফাইলের বিষয়বস্তু নিম্নলিখিত হিসাবে রয়েছে (উদাহরণস্বরূপ):
My block of line starts from here
START
First line
second line
third line
END
and end to here for example.
আমি কেবলমাত্র একটি শব্দের মধ্যে START
এবং লাইনগুলির ব্লকটি প্রতিস্থাপন করতে চাই END
, উদাহরণস্বরূপ SINGLEWORD
। নীচের মত:
My block of line starts from here
SINGLEWORD
and end to here for example.
এই কমান্ডটি ব্যবহার করে আমি আমার লাইনগুলি ব্লক করতে পারি:
grep -Pzo "START(.|\n)*END" filename
এবং উপরের কমান্ড চালনার ফলাফলটি এরকম হবে:
START
First line
second line
third line
END
তারপরে আমি এই কমান্ডটি সমস্ত লাইনকে একক লাইনে একত্রিত করতে ব্যবহার করেছি:
LAST_RESULT | sed -e :a -e '/$/N; s/\n/ /; ta'
তারপরে আমি এই ফলাফলটি পেয়ে যাব:
START First line second line third line END
এবং আমার শেষ আদেশ দিয়ে LAST_RESULTS | sed 's/.*/SINGLEWORD/'
আমি এগুলিতে পরিবর্তন করি "SINGLEWORD"
এবং আমি এই ফলাফলটি পাই result
SINGLEWORD
এখন আমি যা চাই তা হল: আমি কীভাবে এই কমান্ডটি (বা আপনার প্রস্তাবনা আদেশ) ব্যবহার করতে পারি এবং আমার লাইনগুলির ব্লককে "সিঙ্গেলওয়ার্ড" শব্দটিতে প্রতিস্থাপন করতে (স্থানে) রাখতে পারি? এবং চূড়ান্ত ফলাফলটি এই ফাইলটির মতো হবে:
My block of line starts from here
SINGLEWORD
and end to here for example.
sed
করা সম্ভব হওয়া উচিত তবে পড়ার চেয়ে আরও কঠিন (এই প্রশ্নটি দেখুন )