এটি সিডে করা বেশ বিশ্রী, তবে এখানে এমন একটি সংস্করণ রয়েছে যা কাজ করতে পারে তবে একটি অক্ষর (আমি বেছে নিয়েছি %
) যা ইনপুটটিতে প্রদর্শিত হবে না। চরিত্রটি চিহ্নিত করার জন্য ব্যবহৃত হয়।
বলুন words
যে নীচের বিষয়বস্তু সহ আপনার কাছে একটি পাঠ্য ফাইল ডাকা হয়েছে :
Will He beat Sit Down Boy Oh Not now Latch Wi, Qq or Spat? GNU Hurd, protocols on GNU Mach. The Hurd versus Unix.
নিম্নলিখিত bash
লিপিটি কাজ করবে:
cat words
sed 's/ [A-Z][A-Za-z]*[A-Za-z]\{2\}/%&/g' words|tee a
sed 's/\([.!?]\)%/\1/g' a|tee b
sed 's/% [A-Za-z]*\([A-Za-z]\{2\}\)/ Derp\1/g' b|tee c
উপরের ফলাফলটি হবে (আমি প্রতিটি নতুন লাইনে আলাদা করেছি):
Will He beat Sit Down Boy Oh Not now Latch Wi, Qq or Spat? GNU Hurd, protocols on GNU Mach. The Hurd versus Unix.
Will He beat% Sit% Down% Boy Oh% Not now% Latch Wi, Qq or% Spat?% GNU% Hurd, protocols on% GNU% Mach.% The% Hurd versus% Unix.
Will He beat% Sit% Down% Boy Oh% Not now% Latch Wi, Qq or% Spat? GNU% Hurd, protocols on% GNU% Mach. The% Hurd versus% Unix.
Will He beat Derpit Derpwn Derpoy Oh Derpot now Derpch Wi, Qq or Derpat? GNU Derprd, protocols on DerpNU Derpch. The Derprd versus Derpix.
এখানে কিভাবে এটা কাজ করে:
- প্রথম লাইনটি কেবল ফাইলটি মুদ্রণ করে, যাতে আপনি প্রারম্ভিক অবস্থানটি দেখতে পান।
- দ্বিতীয় লাইনটি সমস্ত মূলধনী শব্দের চিহ্নিত করে যা কোনও স্পেসের আগে এবং এর পরে 2 অক্ষর দীর্ঘ হয়
%
। সুতরাং, এটি যেমন চিহ্নিত Latch
করা হবে % Latch
। স্পেসটি নোট করুন, আমি এই স্পেস-ওয়ার্ডটি কল করব।
- তৃতীয় লাইনটি সব স্থান-যে শব্দ একটি অক্ষর একটি বাক্য শেষ পূর্বে থেকে চিহ্ন মুছে ফেলা হবে (সরলতা জন্য, আমি বেছে নেওয়া হয়েছে শুধুমাত্র
.
, !
অথবা ?
- আপনি যেমন অন্যদের যোগ করতে পারেন )
বা এই ধরনের প্রয়োজন হলে)
- তৃতীয় লাইনটি প্রকৃত কি করতে হবে
Derp
রূপান্তর - অর্থাৎ সব স্থান-যে শব্দ দিয়ে চিহ্নিত করা প্রতিস্থাপন %
সঙ্গে DerpXX
, XX
যে স্থান শব্দ দুটি গত অক্ষর হচ্ছে
দ্রষ্টব্য এমন প্রযুক্তি রয়েছে যা এখানে সম্বোধন করা হয়নি, যেমন:
- এটি কেবল মার্কিন ASCII শব্দের জন্য কাজ করবে (উদাঃ সমস্ত ফরাসী শব্দের জন্য কাজ করবে না, যেমন
Être
)
- অন্যান্য অক্ষরের বিবেচনা করা প্রয়োজন হতে পারে (যেমন হয়
Oceans
মধ্যে "Oceans Eleven"
একটি শব্দ যদিও এটা আছে বলে মনে করা "
সামনে?)
- স্পেসহীন সাদা জায়গার জন্য কাজ করবে না (যেমন ট্যাবগুলি)
ইত্যাদি।
এটিকে বিশুদ্ধরূপে একটি sed
স্ক্রিপ্ট তৈরি করতে, কেবল যুক্তিযুক্ত:
sed '
s/ [A-Z][A-Za-z]*[A-Za-z]\{2\}/%&/g
s/\([.!?]\)%/\1/g
s/% [A-Za-z]*\([A-Za-z]\{2\}\)/ Derp\1/g
' words
স্পষ্টতই, বাস্তব বিশ্বে, আমি sed
এই জাতীয় কাজগুলি করতে ব্যবহার করব না। তারপরে আবার, আমার সম্ভবত এই জাতীয় কাজগুলি নাও হবে ... :)