ব্যাশে স্ট্রিং কন্টেনমেন্টের ভূমিকা
ব্যাশ স্ক্রিপ্টগুলির সাথে কাজ করার সময়, এমন পরিস্থিতির মুখোমুখি হওয়া সাধারণ যেখানে আপনাকে একটি স্ট্রিংয়ে একটি নির্দিষ্ট সাবস্ট্রিং রয়েছে কিনা তা পরীক্ষা করতে হবে। এটি অনেক স্ক্রিপ্টিং পরিস্থিতিতে একটি মৌলিক কাজ, যেমন ইনপুট ডেটা পার্স করা, স্ট্রিং যাচাই করা বা নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে বিষয়বস্তু ফিল্টার করা।
এই প্রবন্ধে, আমরা Bash-এ এটি অর্জন করার জন্য বিভিন্ন পদ্ধতি অন্বেষণ করব, যার মধ্যে শর্তসাপেক্ষ বিবৃতি এবং 'echo' এবং 'grep'-এর মতো কমান্ড ব্যবহার করা হবে। আমরা আপনার স্ক্রিপ্টগুলিকে আরও রক্ষণাবেক্ষণযোগ্য এবং কম ত্রুটির প্রবণ করতে সবচেয়ে কার্যকর এবং পঠনযোগ্য পদ্ধতির বিষয়েও আলোচনা করব।
আদেশ | বর্ণনা |
---|---|
[[ ]] | একটি শর্তসাপেক্ষ অভিব্যক্তি যা ব্যাশে স্ট্রিং এবং অন্যান্য অবস্থার পরীক্ষা করতে ব্যবহৃত হয়। |
* | একটি ওয়াইল্ডকার্ড অক্ষর একটি স্ট্রিং প্যাটার্ন ম্যাচের যেকোনো সংখ্যক অক্ষরের প্রতিনিধিত্ব করতে ব্যবহৃত হয়। |
echo | একটি আর্গুমেন্ট হিসাবে পাস করা টেক্সট বা স্ট্রিংয়ের একটি লাইন প্রদর্শন করতে ব্যবহৃত একটি কমান্ড। |
grep | রেগুলার এক্সপ্রেশনের সাথে মিলে যাওয়া লাইনের জন্য প্লেইন-টেক্সট ডেটা অনুসন্ধানের জন্য একটি কমান্ড-লাইন ইউটিলিটি। |
-q | গ্রেপের জন্য একটি বিকল্প যা স্বাভাবিক আউটপুটকে দমন করে এবং শুধুমাত্র প্রস্থান অবস্থা প্রদান করে। |
case | একটি শর্তসাপেক্ষ বিবৃতি ব্যাশে নিদর্শন মেলে ব্যবহৃত হয়। |
;; | বিভিন্ন প্যাটার্ন ক্রিয়াগুলিকে আলাদা করতে কেস স্টেটমেন্টে ব্যবহৃত একটি বিভাজনকারী। |
ব্যাশে সাবস্ট্রিং চেকিং বোঝা
প্রথম স্ক্রিপ্টে, আমরা ব্যবহার করি conditional statements একটি স্ট্রিং একটি নির্দিষ্ট সাবস্ট্রিং আছে কিনা তা পরীক্ষা করতে. আমরা একটি প্রধান স্ট্রিং এবং একটি সাবস্ট্রিং সংজ্ঞায়িত করি, তারপর ব্যবহার করুন [[ ]] construct, যা উন্নত স্ট্রিং তুলনা করার অনুমতি দেয়। বন্ধনী ভিতরে, আমরা ব্যবহার * সাবস্ট্রিং এর আগে এবং পরে যেকোন সংখ্যক অক্ষর উপস্থাপন করতে ওয়াইল্ডকার্ড। শর্ত সত্য হলে, স্ক্রিপ্ট প্রিন্ট করে "এটা আছে!"; অন্যথায়, এটি প্রিন্ট করে "এটি সেখানে নেই!"। এই পদ্ধতিটি দক্ষ এবং প্যাটার্ন ম্যাচিংয়ের জন্য ব্যাশের অন্তর্নির্মিত ক্ষমতা ব্যবহার করে।
দ্বিতীয় স্ক্রিপ্ট নিয়োগ echo এবং grep একই ফলাফল অর্জন করার জন্য আদেশ দেয়। আমরা আবার একটি প্রধান স্ট্রিং এবং একটি সাবস্ট্রিং সংজ্ঞায়িত করি, তারপর ব্যবহার করি echo প্রধান স্ট্রিং আউটপুট এবং এটি পাইপ grep ব্যবহার করে -q স্বাভাবিক আউটপুট দমন করার বিকল্প। Grep প্রধান স্ট্রিং মধ্যে সাবস্ট্রিং জন্য অনুসন্ধান. সাবস্ট্রিং পাওয়া গেলে, স্ক্রিপ্ট প্রিন্ট করে "এটা আছে!"; যদি না হয়, এটি প্রিন্ট করে "এটি সেখানে নেই!"। এই পদ্ধতির শক্তিশালী টেক্সট-অনুসন্ধান ক্ষমতা লাভ করে grep, এটিকে স্ক্রিপ্টের জন্য উপযুক্ত করে তোলে যেখানে জটিল টেক্সট প্যাটার্নগুলিকে মেলাতে হবে।
উন্নত ব্যাশ স্ট্রিং অপারেশন অন্বেষণ
তৃতীয় লিপি a ব্যবহার করে case একটি সাবস্ট্রিং উপস্থিতি পরীক্ষা করার জন্য বিবৃতি। প্রধান স্ট্রিং এবং সাবস্ট্রিং সংজ্ঞায়িত করার পরে, case বিবৃতি বিভিন্ন প্যাটার্নের বিপরীতে প্রধান স্ট্রিংয়ের সাথে মেলে। সাবস্ট্রিং উপস্থিত থাকলে, "এটা সেখানে আছে!" মুদ্রণ করে সংশ্লিষ্ট ক্রিয়াটি কার্যকর করা হয়। সাবস্ট্রিং পাওয়া না গেলে, ডিফল্ট অ্যাকশন প্রিন্ট করে "এটি সেখানে নেই!"। এই পদ্ধতিটি বিশেষভাবে উপযোগী যখন চেক করার জন্য একাধিক প্যাটার্ন থাকে, যেমন case বিবৃতি একাধিক তুলনায় জটিল শাখা যুক্তি আরো পরিষ্কারভাবে পরিচালনা করতে পারে if-else বিবৃতি
সামগ্রিকভাবে, এই পদ্ধতিগুলির প্রত্যেকটি ব্যাশে একটি স্ট্রিং-এ একটি নির্দিষ্ট সাবস্ট্রিং রয়েছে কিনা তা নির্ধারণ করার একটি উপায় প্রদান করে। পদ্ধতির পছন্দ স্ট্রিং ম্যাচিং এর জটিলতা এবং স্ক্রিপ্টের নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে। ব্যবহার [[ ]] ওয়াইল্ডকার্ডের সাথে একত্রিত করার সময় সহজ চেকের জন্য সহজবোধ্য এবং দক্ষ echo এবং grep আরও শক্তিশালী প্যাটার্ন ম্যাচিং অফার করে। দ্য case বিবৃতি, অন্যদিকে, একটি কাঠামোগত উপায়ে একাধিক ম্যাচিং অবস্থা পরিচালনা করার জন্য আদর্শ।
ব্যাশে সাবস্ট্রিং পরীক্ষা করার জন্য শর্তসাপেক্ষ বিবৃতি ব্যবহার করা
ব্যাশ স্ক্রিপ্টিং পদ্ধতি
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present in the main string
if [[ "$string" == *"$substring"* ]]; then
echo "It's there!"
else
echo "It's not there!"
fi
ব্যাশে সাবস্ট্রিং সনাক্ত করতে ইকো এবং গ্রেপ ব্যবহার করা
ইকো এবং গ্রেপ কমান্ডের সমন্বয়
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use echo and grep to check if the substring is present
if echo "$string" | grep -q "$substring"; then
echo "It's there!"
else
echo "It's not there!"
fi
ব্যাশে সাবস্ট্রিং সনাক্তকরণের জন্য কেস স্টেটমেন্ট ব্যবহার করা
কেস স্টেটমেন্ট সহ ব্যাশ স্ক্রিপ্টিং
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use case statement to check for the substring
case "$string" in
*"$substring"*)
echo "It's there!"
;;
*)
echo "It's not there!"
;;
esac
ব্যাশে স্ট্রিং কন্টেনমেন্টের জন্য উন্নত পদ্ধতি
Bash-এ একটি স্ট্রিং-এ একটি সাবস্ট্রিং আছে কিনা তা পরীক্ষা করার প্রাথমিক পদ্ধতি ছাড়াও, আরও উন্নত কৌশল রয়েছে যা বিভিন্ন পরিস্থিতিতে কার্যকর হতে পারে। এই ধরনের একটি পদ্ধতির সাথে নিয়মিত এক্সপ্রেশন ব্যবহার করা জড়িত awk আদেশ Awk প্যাটার্ন স্ক্যানিং এবং প্রক্রিয়াকরণের জন্য একটি শক্তিশালী প্রোগ্রামিং ভাষা। ব্যবহার করে awk, আপনি বৃহত্তর নমনীয়তার সাথে জটিল স্ট্রিং অপারেশন করতে পারেন। উদাহরণস্বরূপ, আপনি ব্যবহার করতে পারেন awk একটি স্ট্রিং এর মধ্যে একটি সাবস্ট্রিং অনুসন্ধান করতে এবং ম্যাচের উপর ভিত্তি করে ক্রিয়া সম্পাদন করতে।
আরেকটি উন্নত কৌশল ব্যবহার করা জড়িত sed কমান্ড, যা স্ট্রীম সম্পাদকের জন্য দাঁড়িয়েছে। Sed একটি ডেটা স্ট্রিম বা ফাইলে পাঠ্য পার্সিং এবং রূপান্তর করার জন্য দরকারী। তুমি ব্যবহার করতে পার sed একটি সাবস্ট্রিং অনুসন্ধান করতে এবং মিলিত পাঠ্যে প্রতিস্থাপন বা অন্যান্য ক্রিয়াকলাপ সম্পাদন করতে। এই উন্নত পদ্ধতিগুলি, যদিও আরও জটিল, ব্যাশ স্ক্রিপ্টগুলিতে পাঠ্য প্রক্রিয়াকরণের জন্য শক্তিশালী ক্ষমতা প্রদান করে, যা পরিশীলিত স্ট্রিং ম্যানিপুলেশনের প্রয়োজন এমন কাজের জন্য তাদের অমূল্য করে তোলে।
Bash-এ String Containment সম্পর্কিত প্রায়শ জিজ্ঞাস্য প্রশ্নাবলী
- একটি স্ট্রিং ব্যবহার করে একটি সাবস্ট্রিং রয়েছে কিনা তা আমি কিভাবে পরীক্ষা করব awk?
- একটি স্ট্রিং ব্যবহার করে একটি সাবস্ট্রিং রয়েছে কিনা তা পরীক্ষা করতে awk, আপনি কমান্ড ব্যবহার করতে পারেন: echo "$string" | awk '{if ($0 ~ /substring/) print "It's there!"}'
- আমি ব্যবহার করতে পারেন sed একটি সাবস্ট্রিং পরীক্ষা করতে?
- হ্যাঁ, আপনি ব্যবহার করতে পারেন sed কমান্ড দিয়ে একটি সাবস্ট্রিং পরীক্ষা করতে: echo "$string" | sed -n '/substring/p'
- ব্যবহার করে কি লাভ awk ওভার grep?
- Awk আরও শক্তিশালী টেক্সট প্রসেসিং ক্ষমতা প্রদান করে এবং প্যাটার্ন মিলের উপর ভিত্তি করে ক্রিয়া সম্পাদন করতে পারে, এটিকে এর চেয়ে বহুমুখী করে তোলে grep.
- একটি সাবস্ট্রিং অনুসন্ধান করার সময় আমি কিভাবে কেস উপেক্ষা করতে পারি?
- একটি সাবস্ট্রিং অনুসন্ধান করার সময় কেস উপেক্ষা করতে, আপনি ব্যবহার করতে পারেন -i সঙ্গে বিকল্প grep: echo "$string" | grep -iq "substring"
- ব্যবহার করা কি সম্ভব regex সঙ্গে if বাশে বিবৃতি?
- হ্যাঁ, আপনি এর সাথে regex ব্যবহার করতে পারেন if ব্যাশ ব্যবহার করে বিবৃতি =~ অপারেটর: if [[ "$string" =~ regex ]]; then
বাশে স্ট্রিং কন্টেনমেন্টের চূড়ান্ত চিন্তা
ব্যাশে একটি স্ট্রিং-এ একটি সাবস্ট্রিং রয়েছে কিনা তা নির্ধারণ করা একটি সাধারণ কাজ যা শর্তসাপেক্ষ বিবৃতি, গ্রেপ কমান্ড এবং কেস স্টেটমেন্ট সহ বিভিন্ন পদ্ধতি ব্যবহার করে করা যেতে পারে। প্রতিটি পদ্ধতি সমস্যা সমাধানের জন্য একটি অনন্য পদ্ধতি প্রদান করে, যা আপনাকে আপনার নির্দিষ্ট চাহিদার উপর ভিত্তি করে সবচেয়ে উপযুক্ত একটি বেছে নিতে দেয়। এই কৌশলগুলি আয়ত্ত করে, আপনি আপনার ব্যাশ স্ক্রিপ্টগুলির দক্ষতা এবং পাঠযোগ্যতা বাড়াতে পারেন।