বাশ গ্লোবিং টিউটোরিয়াল

Bash Globbing Tutorial



ব্যাশ কিছু অন্যান্য স্ট্যান্ডার্ড প্রোগ্রামিং ভাষার মতো নেটিভ রেগুলার এক্সপ্রেশন সমর্থন করে না। বাশ শেল বৈশিষ্ট্য যা নির্দিষ্ট ধরণের নিদর্শনগুলির সাথে মিলিত বা সম্প্রসারণের জন্য ব্যবহৃত হয় তাকে গ্লোবিং বলা হয়। গ্লোবিং প্রধানত ফাইলের নাম মেলাতে বা একটি ফাইলের বিষয়বস্তু অনুসন্ধান করতে ব্যবহৃত হয়। গ্লোবিং প্যাটার্ন তৈরি করতে ওয়াইল্ডকার্ড অক্ষর ব্যবহার করে। সবচেয়ে সাধারণ ওয়াইল্ডকার্ড অক্ষর যা গ্লোবিং প্যাটার্ন তৈরিতে ব্যবহৃত হয় তা নিচে বর্ণিত হয়েছে।

'?' যে কোন একক অক্ষরের সাথে মেলাতে ব্যবহৃত হয়। তুমি ব্যবহার করতে পার '?' একাধিক অক্ষরের সাথে মিলে যাওয়ার জন্য।







উদাহরণ -1:



ধরুন, আপনি সেই টেক্সট ফাইলের নামগুলি অনুসন্ধান করতে চান যাদের নাম 4 অক্ষর দীর্ঘ এবং এক্সটেনশন .txt । আপনি 'ব্যবহার করে গ্লোবিং প্যাটার্ন প্রয়োগ করতে পারেন ? 'এই কাজটি করতে চারবার।



বর্তমান ডিরেক্টরির সমস্ত ফাইল এবং ফোল্ডারের তালিকা বের করুন।





$ls-দ্য

নিম্নলিখিত কমান্ডটি চালান সেই ফাইলগুলি অনুসন্ধান করুন যাদের নাম চার অক্ষরের দীর্ঘ এবং অজানা।

$ ls -l ????। txt



উদাহরণ -২:

ধরুন, আপনি সেই নথি ফাইলগুলি অনুসন্ধান করতে চান যাদের নাম 8 অক্ষর দীর্ঘ, প্রথম 4 অক্ষর f, o, o এবং টি এবং এক্সটেনশন হল ডক । ফাইলগুলি অনুসন্ধান করতে গ্লোবিং প্যাটার্ন সহ নিম্নলিখিত কমান্ডটি চালান।

$ls -দ্যপা ????। ডক

উদাহরণ -3:

ধরুন, আপনি ফাইলের নাম জানেন 'সেরা' এবং এক্সটেনশন 3 অক্ষর দীর্ঘ, কিন্তু এক্সটেনশন জানেন না। ব্যবহার করে নিম্নলিখিত কমান্ডটি চালান '? 'অক্ষর' নামের যেকোনো এক্সটেনশান লম্বা 'টেস্ট' নামের সব ফাইল অনুসন্ধান করতে।

$ls -দ্যসেরা। ???

তারকা - (*)

'*' শূন্য বা তার বেশি অক্ষরের সাথে মেলাতে ব্যবহৃত হয়। যদি আপনার কোন ফাইল বা তথ্য অনুসন্ধান করার জন্য কম তথ্য থাকে তাহলে আপনি ব্যবহার করতে পারেন '*' গ্লোবিং প্যাটার্নে।

উদাহরণ -1:

ধরুন, আপনি সমস্ত ফাইল অনুসন্ধান করতে চান 'Pl' সম্প্রসারণ ব্যবহার করে নিম্নলিখিত কমান্ডটি চালান '*' সেই কাজটি করতে।

$ls -দ্য *.pl

উদাহরণ -২:

ধরুন, আপনি কেবল ফাইলের নামের শুরু চরিত্রটি জানেন যা হল 'প্রতি' । বর্তমান ডাইরেক্টরির সমস্ত ফাইল অনুসন্ধান করার জন্য '*' ব্যবহার করে নিম্নলিখিত কমান্ডটি চালান যাদের নাম দিয়ে শুরু হয়েছে 'প্রতি'

$ls -দ্যপ্রতি**

উদাহরণ -3:

আপনি ফাইল অনুসন্ধান না করে বিভিন্ন উদ্দেশ্যে ব্যাশ স্ক্রিপ্টে '*' প্রয়োগ করতে পারেন। নামে একটি ব্যাশ ফাইল তৈরি করুন 'Check.sh' নিম্নলিখিত স্ক্রিপ্ট সহ। এখানে, যখন ব্যবহারকারী টাইপ করবে ' y 'বা' Y 'বা' হ্যাঁ 'বা' হ্যাঁ ' তারপর 'নিশ্চিত' প্রিন্ট করবে এবং কখন টাইপ করবে 'এন' বা 'এন' বা 'না' বা 'না' তারপর 'নিশ্চিত না' মুদ্রণ করবে।

#!/বিন/ব্যাশ
বের করে দিল 'আপনি কি নিশ্চিত করতে চান?'
পড়ুনউত্তর
কেস $ উত্তর ভিতরে
[Yy]* ) বের করে দিল 'নিশ্চিত।';;
[নং]* ) বের করে দিল 'নিশ্চিত না.';;
*) বের করে দিল 'আবার চেষ্টা করুন.';;
esac

স্ক্রিপ্ট চালান।

$বাশcheck.sh

স্কয়ার বন্ধনী - ([])

'[]' পরিসীমা থেকে অক্ষর মেলে ব্যবহৃত হয়। বেশিরভাগ ব্যবহৃত পরিসীমা ঘোষণার কিছু নিচে উল্লেখ করা হয়েছে।

সমস্ত বড় হাতের বর্ণমালা পরিসীমা দ্বারা সংজ্ঞায়িত করা হয়, [: বড়:] বা [A-Z] হিসাবে।

সমস্ত ছোট হাতের বর্ণমালা পরিসীমা দ্বারা সংজ্ঞায়িত করা হয়, [: নিম্ন:] বা [a-z] হিসাবে।

সমস্ত সংখ্যাসূচক সংখ্যা পরিসীমা দ্বারা সংজ্ঞায়িত করা হয়, [: digit:] অথবা [0-9] হিসাবে।

সমস্ত বড় হাতের এবং নিম্ন বর্ণমালা পরিসীমা দ্বারা সংজ্ঞায়িত করা হয়েছে, [: alpha:] অথবা [a-zA-z] হিসাবে।

সমস্ত বড় হাতের বর্ণমালা, ছোট হাতের বর্ণমালা এবং সংখ্যাগুলি [: alnum:] বা [a-zA-Z0-9] হিসাবে পরিসীমা দ্বারা সংজ্ঞায়িত করা হয়

উদাহরণ -1:

সমস্ত ফাইল এবং ফোল্ডার অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান যার নাম রয়েছে পৃ অথবা কি অথবা আর অথবা গুলি

$ls -দ্য [পুনশ্চ]*

উদাহরণ -২:

সমস্ত ফাইল এবং ফোল্ডার অনুসন্ধান করার জন্য নিম্নলিখিত কমান্ডটি চালান যার নাম 1 থেকে 5 পর্যন্ত যে কোনও ডিজিট দিয়ে শুরু হয়।

$ls -দ্য [-5]*

তার অভাব - (^)

তুমি ব্যবহার করতে পার '^' আরও বিশেষভাবে গ্লোবিং প্যাটার্ন সংজ্ঞায়িত করতে বর্গাকার বন্ধনী সহ। '^' বর্গাকার বন্ধনী ভিতরে বা বাইরে ব্যবহার করা যেতে পারে। অক্ষরের একটি নির্দিষ্ট পরিসর দিয়ে শুরু হওয়া ফাইলের বিষয়বস্তুগুলি অনুসন্ধান করার জন্য '^' বর্গাকার বন্ধনের বাইরে ব্যবহার করা হয়। বর্ণের বন্ধনীর ভিতরে '^' ব্যবহার করা হয় যাতে একটি নির্দিষ্ট পরিসরের অক্ষর দিয়ে লাইনগুলি হাইলাইট করে ফাইলের সমস্ত বিষয়বস্তু দেখা যায়। আপনি একটি ফাইল থেকে বিশেষ বিষয়বস্তু অনুসন্ধানের জন্য বিভিন্ন ধরনের গ্লোবিং প্যাটার্ন ব্যবহার করতে পারেন। 'ধরা' bash এ বিষয়বস্তু অনুসন্ধানের জন্য কমান্ড ব্যবহার করা হয়। ধরুন, আপনার নামে একটি টেক্সট ফাইল আছে 'List.txt' নিম্নলিখিত বিষয়বস্তু সহ। সেই ফাইলের জন্য নিম্নলিখিত উদাহরণগুলি পরীক্ষা করুন।

আপেল
4000
কলা
700
কমলা
850
নাশপাতি
9000
কাঁঠাল

উদাহরণ - 1:

এই লাইনগুলি থেকে অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান list.txt যে ফাইল দিয়ে শুরু হয় P বা Q বা R

$ grep '^[P-R]' list.txt

উদাহরণ - 2:

এই লাইনগুলি হাইলাইট করতে নিম্নলিখিত কমান্ডটি চালান list.txt যে ফাইল দিয়ে শুরু হয় A বা B বা C

$ grep '[^A-C]' list.txt

বিস্ময়কর চিহ্ন - (!)

তুমি ব্যবহার করতে পার '!' পরিসীমা প্যাটার্ন ভিতরে। এটি পরিসীমা প্যাটার্নের বাইরে '^' প্রতীক ব্যবহারের মতোই কাজ করে। ব্যবহারের কিছু উদাহরণ '!' সাইন নিচে দেওয়া আছে।

উদাহরণ - 1:

এই লাইনগুলি দেখানোর জন্য নিম্নলিখিত কমান্ডটি চালান list.txt যে ফাইল দিয়ে শুরু হয় 'পি' বা প্রশ্ন বা আর

$ grep [! P-R] list.txt

উদাহরণ - 2:

এই লাইনগুলি দেখানোর জন্য নিম্নলিখিত কমান্ডটি চালান list.txt যে কোন অঙ্কের সাথে শুরু হওয়া ফাইল 4 থেকে 8

$ grep [! 4-8] list.txt

ডলার চিহ্ন - ($)

'$' শেষ অক্ষর সংজ্ঞায়িত করতে ব্যবহৃত হয়। যদি আপনি জানেন শেষ অক্ষরের উপর ভিত্তি করে তথ্য অনুসন্ধান করতে চান তাহলে আপনি ব্যবহার করতে পারেন '$' গ্লোবিং প্যাটার্নে।

উদাহরণ - 1:

এই লাইনগুলি থেকে অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান list.txt যে ফাইল দিয়ে শেষ হয় 'প্রতি'

$ grep একটি $ list.txt

উদাহরণ - 2:

এই লাইনগুলি থেকে অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান list.txt নম্বর দিয়ে শেষ হওয়া ফাইল পঞ্চাশ

$ grep 50 $ list.txt

কোঁকড়া বন্ধনী - ({})

'{}' একাধিক গ্লোবিং প্যাটার্নের সাথে ফাইলের নাম মেলাতে ব্যবহার করা যেতে পারে। প্রতিটি প্যাটার্ন কোন স্থান ছাড়াই কোঁকড়া বন্ধনীতে ',' দ্বারা পৃথক করা হয়। কিছু উদাহরণ নিচে দেওয়া হল।

উদাহরণ - 1:

যে ফাইলগুলির নাম 5 অক্ষর লম্বা এবং এক্সটেনশনটি রয়েছে সেগুলি অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান 'শ' অথবা ফাইলের শেষ দুটি অক্ষর 'সেন্ট' এবং এক্সটেনশন হল 'Txt'

$ ls -l {?????। sh,*st.txt}

উদাহরণ - 2:

সমস্ত ফাইল যার এক্সটেনশনগুলি মুছে ফেলার জন্য নিম্নলিখিত কমান্ডটি চালান 'ডক' বা 'ডক্স'

$আরএম {*.doc,*.docx}

পাইপ (|)

গ্লোবিং প্যাটার্নে একাধিক শর্ত প্রয়োগের জন্য '|' চিহ্নটিও ব্যবহৃত হয়। প্রতিটি প্যাটার্ন কমান্ডে '|' চিহ্ন দ্বারা আলাদা করা হয়।

উদাহরণ - 1:

অক্ষর 'a' দিয়ে শুরু হওয়া এবং 'bash' বা 'sh' এক্সটেনশন আছে এমন ফাইলের নামগুলি অনুসন্ধান করতে নিম্নলিখিত কমান্ডটি চালান।

$lsপ্রতি*+(.বাশ|.sh)

উদাহরণ - 2:

নামে একটি ব্যাশ ফাইল তৈরি করুন 'Menu.bash' এবং নিম্নলিখিত স্ক্রিপ্ট যোগ করুন। যদি ব্যবহারকারী টাইপ করে 1 বা এস তারপর এটি মুদ্রণ করা হবে টেক্সট সার্চ করা হচ্ছে । যদি ব্যবহারকারী টাইপ করে 2 বা আর তারপর এটি মুদ্রণ করা হবে পাঠ্য প্রতিস্থাপন করা হচ্ছে । যদি ব্যবহারকারী টাইপ করে 3 বা ডি তারপর এটি মুদ্রণ করা হবে লেখা মুছে ফেলা হচ্ছে । এটি মুদ্রণ করবে আবার চেষ্টা করুন অন্য কোন ইনপুটের জন্য।

#!/বিন/ব্যাশ
বের করে দিল 'মেনু থেকে যেকোনো বিকল্প নির্বাচন করুন:'
পড়ুনউত্তর
কেস $ উত্তর ভিতরে
|এস) বের করে দিল 'পাঠ্য অনুসন্ধান করা হচ্ছে';;
2 |আর) বের করে দিল 'পাঠ্য প্রতিস্থাপন';;
3 |ডি) বের করে দিল 'লেখা মুছে ফেলা হচ্ছে';;
*) বের করে দিল 'আবার চেষ্টা করুন.';;
esac

স্ক্রিপ্ট চালান।

$বাশmenu.bash

উপসংহার

অতি সাধারণভাবে ব্যবহৃত কিছু গ্লোবিং প্যাটার্ন এই টিউটোরিয়ালে খুব সহজ উদাহরণ ব্যবহার করে ব্যাখ্যা করা হয়েছে। আমি আশা করি উপরের উদাহরণগুলি অনুশীলনের পরে, গ্লোবিংয়ের ধারণাটি আপনার কাছে স্পষ্ট হবে এবং আপনি এটি সফলভাবে ব্যাশ কমান্ড এবং স্ক্রিপ্টগুলিতে প্রয়োগ করতে সক্ষম হবেন।

আরও তথ্যের জন্য এই ভিডিওটি দেখুন: