• Welcome to Daffodil International University.
 

News:

Daffodil International University Forum contains information about Open Text material, which is only intended for the significant learning purposes of the university students, faculty, other members, and the knowledge seekers of the entire world and is hoped that the offerings will aide in the distribution of reliable information and data relating to the many areas of knowledge.

Main Menu

বাংলায় শেল স্ক্রিপ্টিং- পর্ব ৩ [টার্মিনালে সার্চ অপারেশন]

Started by sanzid.swe, March 03, 2020, 11:15:56 AM

Previous topic - Next topic

sanzid.swe

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

সার্সিং
ফিক্সড কোনকিছু দিয়ে শুরু
কোন ডিরেক্টরির সকল ফাইলগুলো টার্মিনালে দেখতে ls কমান্ড ইউজ করতে হয়, আগেই জেনেছি। কিন্তু যদি চাই, শুধুমাত্র ঐ সকল ফাইল দেখবো যাদের নামের প্রথম অক্ষর a দিয়ে শুরু, বাকীগুলো দেখবো না। তাহলে কি করতে হবে? হ্যা, এটাই হল এক ধরনের সার্স। এভাবে খুজে পেতে হলে কোন ডিরেক্টরিতে গিয়ে জাস্ট লিখতে ls a* এবং এন্টার চাপলেই ঐ ডিরেক্টরিতে থাকা a দিয়ে শুরু সকল ফাইল টার্মিনালে শো করবে। এখন মনে করি Documents ডিরেক্টরিতে আমাদের application, CV, python, Akash, wallpaper, waler নামে কিছু ফাইল/ ডিরেক্টরি আছে। আমরা খুজতে চাই wal দিয়ে শুরু অবজেক্টগুলো-

ls wal*
1
ls wal*
তাহলে টার্মিনালে wallpaper এবং waler নামের অবজেক্টদুটি শো করবে। এখানে * চিহ্ন দ্বারা বুঝানো হয় ০(শূন্য) ছাড়া বাকী যেকোনকিছু, অর্থাৎ wal এর পর ০(শূন্য) ছাড়া বাকী যেকোনকিছু থাকলেই সেটি শো করবে।

আবার আমরা যদি ls a? কমান্ড দেই তাহলে a এর পরে অন্য যেকোনকিছু যদি শুধু একটা থাকে, তাহলে সেগুলো শো করবে, অর্থাৎ ? দিয়ে সিঙ্গেল ক্যারেকটার বুঝায়।
একইভাবে যদি ls a?? কমান্ড দেই তাহলে a এর পরে অন্য যেকোনকিছু যদি শুধু দুইটা থাকে, তাহলে সেগুলো শো করবে, অর্থাৎ দুইটা ? দিয়ে দুইটা সিঙ্গেল ক্যারেকটার বুঝায়।


অনেকগুলোর মধ্যে যেকোন একটি দিয়ে শুরু
একইভাবে আবার মনে করি Documents ডিরেক্টরিতে আমাদের application, CV, python, Akash, wallpaper, waler নামে কিছু ফাইল/ ডিরেক্টরি আছে। আমরা খুজতে চাই যেগুলো শুধুমাত্র ছোটহাতের Vowel(a,e,i,o,u) এর যেকোন একটা দিয়ে শুরু, তাহলে ডিরেক্টরিতে গিয়ে লিখতে হবে-

ls [aeiou]*
1
ls [aeiou]*
তাহলে দেখতে পাবো শুধুমাত্র application ফাইলটি টার্মিনালে শো করছে।

এবার যদি আমরা এভাবে দেখতে চাই যে, প্রথম অক্ষর ছোটহাতের Consonant এবং পরের অক্ষর l,a,s এর যেকোন একটি দিয়ে শুরু। অর্থাৎ প্রথম দুইটা অক্ষরেরই কন্ডিশন দিয়ে দিবো, তাহলে লিখতে হবে-

ls [!aeiou][las]*
1
ls [!aeiou][las]*
তাহলে এখান থেকে wallpaper এবং waler অবজেক্টটি টার্মিনাল শো করবে।



টেক্সট ফাইলের মধ্যে কোনকিছু খোঁজা
মনে করি application ফাইলটার মধ্যে আমাদের ডিপার্টমেন্ট হেড স্যার এর কাছে একটা দরখাস্ত লেখা আছে, সেখানে অবশ্যই sir কথাটি থাকবেই। আমরা এবার সেই লাইনগুলো খুজে বের করবো। ডিরেক্টরিতে গিয়ে লিখতে হবে grep fileName keyword এবং আমাদের ফাইলের জন্য আমরা লিখবো-

grep "sir" application
1
grep "sir" application
ফলে আমরা যে ফলাফলটি পাবো তা হয়তো-

echo "sir, I'm a regular student of your university"
echo "I remain sir"
1
2
echo "sir, I'm a regular student of your university"
echo "I remain sir"
এরকম দুইটি লাইন পাবো যার মধ্যে sir শব্দটি রয়েছে। আরও বেশিও থাকলে টার্মিনালে সবগুলো শো করবে...

আমার ব্লগের মূল লেখা- https://bit.ly/2wnzDhv
_________
Md. Sanzidul Islam
Lecturer, Dept. of SWE
Daffodil International University
Cell: +880 1864007005
Portfolio: https://sanzidscloud.com
102, Shukrabad, Mirpur Road
Dhanmondi, Dhaka- 1207