b (branch) এবং t (test) কমান্ড এর ব্যবহার

Sed Loops এবং Branching (লুপ এবং ব্রাঞ্চিং) - সেড (Sed) - Computer Programming

382

Sed (Stream Editor) এর b (branch) এবং t (test) কমান্ডগুলি conditional branching এবং looping এর জন্য ব্যবহৃত হয়। এগুলি Sed স্ক্রিপ্টে লজিক্যাল ফ্লো নিয়ন্ত্রণ করতে ব্যবহৃত হয়, যেখানে আপনি নির্দিষ্ট শর্তের ভিত্তিতে কমান্ডগুলি চালানোর জন্য শাখা তৈরি করতে পারেন।


1. b (branch) কমান্ড

Sed এ b (branch) কমান্ডটি একটি jump বা branch তৈরি করে, অর্থাৎ এটি Sed স্ক্রিপ্টে একটি নির্দিষ্ট জায়গায় চলে যেতে নির্দেশ দেয়। আপনি এটি ব্যবহার করে একটি নির্দিষ্ট লেবেলে চলে যেতে পারেন।

সিনট্যাক্স:

b label

এখানে:

  • label: এটি একটি লেবেল যা Sed স্ক্রিপ্টের মধ্যে সংজ্ঞায়িত করা হয়। এটি b কমান্ড দ্বারা জাম্প করার স্থানের প্রতিনিধিত্ব করে।

b কমান্ডের উদাহরণ:

sed '1b skip; 2s/cat/dog/' file.txt

এটি:

  1. 1b skip: প্রথম লাইনটি পড়ার পর, Sed skip লেবেলে চলে যাবে এবং কোনো পরিবর্তন করবে না।
  2. 2s/cat/dog/: দ্বিতীয় লাইনে "cat" শব্দকে "dog" দিয়ে প্রতিস্থাপন করবে।

লেবেল এবং শাখা ব্যবহারের মাধ্যমে আপনি স্ক্রিপ্টের মধ্যে যেকোনো অংশে জাম্প করতে পারেন।

অন্য উদাহরণ:

sed '3b end; 4s/hello/world/' file.txt

এটি:

  • 3b end: তৃতীয় লাইনের পরে Sed end লেবেলে চলে যাবে।
  • 4s/hello/world/: চতুর্থ লাইনে "hello" শব্দটিকে "world"-এ প্রতিস্থাপন করবে।

2. t (test) কমান্ড

t (test) কমান্ডটি একটি শর্তাধীন জাম্প বা conditional branching তৈরি করে। এটি s/// (substitution) কমান্ডের পরে ব্যবহৃত হয়, যা পরীক্ষার শর্ত হিসেবে কাজ করে। যদি s/// কমান্ডে কোনো পরিবর্তন হয় (অর্থাৎ, প্যাটার্ন ম্যাচ করে এবং সাফল্য অর্জিত হয়), তবে t কমান্ডটি নির্দিষ্ট লেবেলে চলে যাবে।

সিনট্যাক্স:

t label

এখানে:

  • label: একটি লেবেল যেখানে আপনি t কমান্ড দ্বারা যেতে চান, যদি পূর্ববর্তী s/// কমান্ডটি সফল হয়।

t কমান্ডের উদাহরণ:

sed 's/cat/dog/; t skip; s/dog/rabbit/' file.txt

এটি:

  1. প্রথমে s/cat/dog/ কমান্ড চালাবে এবং "cat" শব্দটি "dog" দিয়ে প্রতিস্থাপন করবে।
  2. যদি প্রথম কমান্ডে কোনো পরিবর্তন হয় (অর্থাৎ, "cat" শব্দটি পাওয়া যায়), তাহলে t skip কমান্ডটি চলে যাবে এবং দ্বিতীয় কমান্ডটি (যথা s/dog/rabbit/) কার্যকর হবে।
  3. যদি প্রথম কমান্ডে কোনো পরিবর্তন না ঘটে, তখন দ্বিতীয় কমান্ড (যথা s/dog/rabbit/) চলবে না।

অন্য উদাহরণ:

sed 's/apple/banana/; t found; s/mango/peach/' file.txt

এটি:

  1. প্রথমে s/apple/banana/ কমান্ডে "apple" শব্দটি "banana"-এ পরিবর্তিত হবে, যদি এটি থাকে।
  2. যদি "apple" শব্দটি থাকে এবং পরিবর্তন হয়, তাহলে t found লেবেলে চলে যাবে এবং দ্বিতীয় কমান্ডটি চলবে না।
  3. যদি প্রথম কমান্ডে কোনো পরিবর্তন না ঘটে, তবে s/mango/peach/ কমান্ড কার্যকর হবে।

b এবং t কমান্ডের ব্যবহারের সুবিধা

  • b (branch) কমান্ডটি আপনাকে কোনো নির্দিষ্ট স্থানে জাম্প করতে সাহায্য করে, যেটি আপনি পূর্বে একটি লেবেল দিয়ে উল্লেখ করেছেন।
  • t (test) কমান্ডটি s/// কমান্ডের পরবর্তী শর্তাধীন কার্যকলাপ পরিচালনা করে, যা কেবল তখন কার্যকর হবে যদি s/// কমান্ডটি সফল হয় এবং কোনো পরিবর্তন ঘটে।

এগুলি Sed স্ক্রিপ্টে লজিক্যাল ফ্লো নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয় এবং আপনার স্ক্রিপ্টে জটিল শর্তযুক্ত পরিবর্তন বা লুপিং প্রক্রিয়া যোগ করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...