ভূমিকা
লিনাক্স grep কম্যান্ডটি ফিল্টারিং ইনপুটের জন্য একটি পদ্ধতি হিসাবে ব্যবহৃত হয়।
GREP গ্লোবাল রেগুলার এক্সপ্রেশন প্রিন্টারের জন্য দাঁড়িয়েছে এবং সেইজন্য এটি কার্যকরভাবে ব্যবহার করার জন্য আপনার নিয়মিত এক্সপ্রেশন সম্পর্কে কিছু জ্ঞান থাকতে হবে।
এই নিবন্ধে, আমি আপনাকে অনেক উদাহরণ দেখাব যা আপনাকে grep কমান্ডটি বুঝতে সাহায্য করবে।
09 এর 01
GREP ব্যবহার করে একটি ফাইল একটি স্ট্রিং জন্য অনুসন্ধান করুন কিভাবে
কল্পনা করুন যে আপনার কাছে নিম্নোক্ত বাচ্চাদের বইয়ের শিরোনামগুলির সাথে একটি বই লেখা আছে:
- রবিন হুড
- লিটল রেড রাইডিং হুড
- পিটার প্যান
- গোল্ডিলকস এবং তিন বায়ার
- স্নো হোয়াইট ও সাত বামন
- Pinnochio
- টুপির মধ্যে বিড়ালটি
- তিনটি ছোট শূকরছানা
- গ্রেফলো
- চার্লি এবং চকলেট ফ্যাক্টরী
শিরোনামের "এই" শব্দটি দিয়ে সমস্ত বইগুলি খুঁজে পেতে আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করবেন:
বইগুলি
নিম্নলিখিত ফলাফলগুলি ফিরে আসবে:
- গোল্ডিলকস এবং তিন বায়ার
- স্নো হোয়াইট ও সাত বামন
- টুপির মধ্যে বিড়ালটি
- তিনটি ছোট শূকরছানা
- গ্রেফলো
- চার্লি এবং চকলেট ফ্যাক্টরী
প্রতিটি ক্ষেত্রে, শব্দ "দী" হাইলাইট করা হবে।
লক্ষ্য করুন যে অনুসন্ধানটি কেস সংবেদনশীল তাই শিরোনামগুলির একটি "" "" এর পরিবর্তে "" "" "তাহলে" এটি ফেরত দেওয়া হবে না।
ক্ষেত্রে উপেক্ষা করতে আপনি নিম্নলিখিত সুইচ যোগ করতে পারেন:
বইগুলি দখল - ইগনার-কেস
আপনি নিম্নলিখিত হিসাবে -i সুইচ ব্যবহার করতে পারেন:
grep -i বইগুলি
02 এর 09
ওয়াইল্ডকার্ড ব্যবহার করে একটি ফাইল একটি স্ট্রিং জন্য অনুসন্ধান করুন
Grep কমান্ড খুবই শক্তিশালী। ফলাফলগুলি ফিল্টার করার জন্য আপনি একটি প্যাটার্ন প্যাটার্ন মার্কেটিং কৌশল ব্যবহার করতে পারেন।
এই উদাহরণে, আমি আপনাকে ওয়াইল্ডকার্ড ব্যবহার করে একটি ফাইলের মধ্যে একটি স্ট্রিং জন্য অনুসন্ধান কিভাবে দেখাতে হবে।
কল্পনা করুন যে আপনার কাছে নিম্নলিখিত স্কটিশ জায়গাগুলির নামের একটি ফাইল আছে:
Aberdeen
Aberystwyth
Aberlour
Inverurie
Inverness
Newburgh
নতুন হরিণ
নতুন গ্যালওয়ে
গ্লাজ্গোউ
এডিনবার্গ
যদি আপনি নাম দিয়ে ইনভেরের সকল স্থান খুঁজতে চান তবে নিম্নোক্ত সিনট্যাক্স ব্যবহার করুন:
জিপ ইনভার * স্থান
তারকাচিহ্ন (*) ওয়াইল্ডকার্ড 0 বা তার থেকে অনেক বেশি। অতএব যদি আপনার কোন ইনভেরেন্স নামে একটি স্থান বা ইনভেরেন্স নামে একটি জায়গা থাকে তবে উভয়ই ফিরে আসবে।
আপনি ব্যবহার করতে পারেন অন্য ওয়াইল্ডকার্ড হল (।) আপনি একটি একক চিঠি মেলে এই ব্যবহার করতে পারেন।
grep inver.r স্থানগুলি
উপরের কমান্ডটি inverurie এবং inverary নামক স্থান খুঁজে পাবে কিন্তু অভাবগ্রস্ত খুঁজে পাওয়া যাবে না কারণ একক সময়ের মধ্যে চিহ্নিত দুটি r এর মধ্যে কেবল একটি ওয়াইল্ডকার্ড থাকতে পারে।
মেয়াদকালীন ওয়াইল্ডকার্ডটি দরকারী কিন্তু এটি সমস্যা দেখাতে পারে যদি আপনি যে পাঠ্যটি অনুসন্ধান করছেন সেটির একটি অংশ হিসাবে আছে।
উদাহরণস্বরূপ, ডোমেন নামগুলির এই তালিকাটি দেখুন
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- everydaylinuxuser.com
- google.co.uk
- google.au
- direct.gov.uk
সমস্ত about.com অনুসন্ধান করার জন্য আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে অনুসন্ধান করতে পারেন:
* ডোমেন নাম সম্পর্কে * grep *
উপরের কমান্ডটি নিচে নামিয়ে দিবে যদি তালিকায় নিম্নলিখিত নাম থাকে:
- everydaylinuxuser.com/about.html
আপনি নিম্নলিখিত সিনট্যাক্সটি চেষ্টা করতে পারেন:
grep * about.com ডোমেইন নেমগুলি
নিম্নলিখিত নাম দিয়ে ডোমেন না থাকলে এটি ঠিক কাজ করবে:
aboutycom.com
সত্যিই about.com শব্দটি অনুসন্ধান করার জন্য নিম্নলিখিত ডট থেকে আপনাকে অব্যাহতি দিতে হবে:
grep * about \ .com ডোমেন নাম
চূড়ান্ত ওয়াইল্ডকার্ড আপনাকে দেখানোর জন্য একটি প্রশ্ন চিহ্ন যা শূন্য বা এক অক্ষরের জন্য দাঁড়ায়।
উদাহরণ স্বরূপ:
grep? ber placenames
উপরের কমান্ডটি aberdeen, aberystwyth বা এমনকি berwick ফিরে হবে।
09 এর 03
Grep ব্যবহার করে লাইনের শুরু এবং শেষে স্ট্রিংগুলির জন্য অনুসন্ধান করুন
ক্যারেট (^) এবং ডলার ($) চিহ্ন আপনাকে লাইনগুলির প্রারম্ভ ও শেষ সময়ে নিদর্শনগুলির সন্ধান করতে দেয়।
কল্পনা করুন আপনার কাছে একটি ফাইল আছে যা ফুটবল নামে নিম্নলিখিত দলের নামগুলির সাথে আছে:
- ব্ল্যাকপুল
- লিভারপুল
- ম্যানচেস্টার শহর
- লিস্টার সিটি
- ম্যানচেস্টার ইউনাইটেড
- নিউক্যাসল ইউনাইটেড
- এফসি ইউনাইটেড ম্যানচেস্টার
আপনি ম্যানচেস্টারের সাথে শুরু সমস্ত দল খুঁজে বের করতে চান তাহলে আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করবে:
গ্রিপ ^ ম্যানচেস্টার দল
উপরের কমান্ডটি ম্যানচেস্টার সিটি এবং ম্যানচেস্টার ইউনাইটেড কিন্তু ফিউর ইউনাইটেড ম্যানচেষ্টারের ফিরে আসবে না।
বিকল্পভাবে আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে ইউনাইটেডের সাথে সমাপ্ত সমস্ত দল খুঁজে পেতে পারেন:
ইউনাইটেড ইউনাইটেড দল
উপরের কমান্ডটি ম্যানচেস্টার ইউনাইটেড এবং নিউক্যাসল ইউনাইটেডকে ফিরিয়ে আনবে কিন্তু ম্যানচেস্টারের এফসি ইউনাইটেডের বিপক্ষে।
04 এর 09
Grep ব্যবহার করে মিলের সংখ্যা গণনা
যদি আপনি grep ব্যবহার করে একটি প্যাটার্নের সাথে মেলে এমন প্রকৃত লাইনগুলি ফিরে না চান তবে আপনি কেবল জানতে চান কতটি নিম্নোক্ত সিনট্যাক্স ব্যবহার করতে পারেন:
grep -c প্যাটার্ন ইনপুটফাইল
যদি প্যাটার্ন দুইবার মিলে যায় তাহলে সংখ্যা 2 ফিরে আসবে।
05 এর 09
Grep ব্যবহার করে মেলে না এমন সব শর্তাদি খুঁজুন
কল্পনা করুন আপনার নিম্নে তালিকাভুক্ত দেশগুলির সাথে স্থানগুলির নাম তালিকা আছে:
- অ্যাবেডিন স্কোল্যান্ড
- গ্লাসগো স্কোল্যান্ড
- লিভারপুল ইংল্যান্ড
- কোলভিন উপসাগর
- লন্ডন, ইংল্যান্ড
আপনি হয়তো লক্ষ্য করেছেন যে কোলভিন উপসাগর এর সাথে কোন দেশ যুক্ত নয়।
একটি দেশের সাথে সমস্ত স্থান অনুসন্ধান করার জন্য আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:
গ্রাফ জমি $ স্থান
ফলাফলগুলি কোলভিন উপকূলে ছাড়া সব জায়গা হবে।
এই স্পষ্টতই শুধুমাত্র জমি স্থল (কমই বৈজ্ঞানিক) শেষ যা জন্য কাজ করে।
আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে নির্বাচন বিপরীত করতে পারেন:
grep -v জমি $ স্থান
এই সব জায়গা যে জমি দিয়ে শেষ না খুঁজে পাবেন।
06 এর 09
Grep ব্যবহার করে ফাইলগুলির খালি লাইন খুঁজে পেতে কিভাবে
কল্পনা করুন আপনার কাছে একটি ইনপুট ফাইল রয়েছে যা একটি তৃতীয় পক্ষের অ্যাপ্লিকেশান দ্বারা ব্যবহৃত হয় যা ফাইলটি পড়ার স্টপ যখন এটি একটি ফাঁকা লাইন খুঁজে পাওয়া যায়:
- অ্যাবেডিন স্কোল্যান্ড
- ইনভেরাস স্কোল্যান্ড
- লিভারপুল ইংল্যান্ড
- কোলভিন বে ওয়েলস
লিভারপুলের পরে অ্যাপ্লিকেশনটি যখন লাইনে পৌঁছায় তখন কলিভিন উপসাগরটি সম্পূর্ণরূপে অনুপস্থিত বলে বোঝা যায়।
নিম্নলিখিত সিনট্যাক্স সহ ফাঁকা লাইনগুলি অনুসন্ধান করতে grep ব্যবহার করতে পারেন:
grep ^ $ places
দুর্ভাগ্যবশত এটি বিশেষভাবে দরকারী নয় কারণ এটি শুধু ফাঁকা রেখা প্রদান করে।
আপনি অবশ্যই ফাঁকা রেখার সংখ্যা গণনা পেতে পারেন যেমনটি দেখতে নিম্নলিখিত ফাইল বৈধ কিনা তা দেখুন:
grep -c ^ $ স্থান
তবে লাইনের সংখ্যাগুলি জানতে ফাঁকা রেখার জন্য এটি আরও উপযোগী হবে যাতে আপনি তাদের প্রতিস্থাপন করতে পারেন। আপনি নিম্নলিখিত কমান্ড দিয়ে এটি করতে পারেন:
grep -n ^ $ places
09 এর 07
Grep ব্যবহার করে কিভাবে বড় হাতের বা ছোট হাতের অক্ষরের স্ট্রিংগুলির জন্য অনুসন্ধান করতে হয়
Grep ব্যবহার করে আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে একটি ফাইলের মধ্যে কোন লাইনগুলি বড় হাতের অক্ষর নির্ধারণ করতে পারেন:
grep '[AZ]' ফাইলের নাম
বর্গাকার বন্ধনীগুলি [] আপনাকে অক্ষরের পরিসর নির্ধারণ করতে দেয়। উপরের উদাহরণে এটি কোন অক্ষর সাথে মিলিত হয় যা A এবং Z এর মধ্যে রয়েছে।
অতএব, লোকেশনের অক্ষরগুলি মিলে যাওয়ার জন্য আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:
grep '[az]' ফাইলের নাম
আপনি যদি কেবলমাত্র অক্ষর এবং কোন সংখ্যা বা অন্যান্য প্রতীক মেলে না চান তবে আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:
grep '[a-zA-Z]' ফাইলের নাম
নিম্নোক্ত সংখ্যার সাথে আপনি একই কাজ করতে পারেন:
grep '[0-9]' ফাইলের নাম
09 এর 08
Grep ব্যবহার পুনরাবৃত্তি প্যাটার্নগুলির জন্য খুঁজছি
আপনি পুনরাবৃত্তির প্যাটার্ন অনুসন্ধান করতে কারি ব্রেটগুলি {} ব্যবহার করতে পারেন।
কল্পনা করুন আপনার নিম্নোক্ত ফোন নম্বর সহ একটি ফাইল আছে:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
আপনি জানেন যে সংখ্যাটির প্রথম অংশটি তিন অঙ্কের হতে হবে এবং আপনি এই প্যাটার্নের সাথে মেলে এমন লাইন খুঁজতে চান।
পূর্ববর্তী উদাহরণ থেকে আপনি জানেন যে [0-9] একটি ফাইলের মধ্যে সমস্ত নম্বর ফেরৎ।
এই উদাহরণে আমরা চাই যে লাইনটি তিন সংখ্যা দিয়ে শুরু হয় যা হাইফেন (-) দ্বারা অনুসরণ করা হয়। আপনি নিম্নলিখিত সিনট্যাক্স দিয়ে এটি করতে পারেন:
grep "^ [0-9] [0-9] [0-9] -" সংখ্যা
আমরা আগের উদাহরণ থেকে জানি যে ক্যারেট (^) এর মানে হল যে লাইন নিম্নলিখিত প্যাটার্ন দিয়ে শুরু হওয়া আবশ্যক।
[0-9] 0 এবং 9 এর মাঝামাঝি কোনও নম্বর অনুসন্ধান করবে। এটি তিনবার অন্তর্ভুক্ত। অবশেষে একটি হাইফেনকে বোঝায় যে একটি হাইফেন তিনটি সংখ্যা সফল হবে।
কোঁকড়া বন্ধনী ব্যবহার করে আপনি ছোট ছোট অনুসন্ধান করতে পারেন:
grep "^ [0-9] \ {3 \} -" সংখ্যা
স্ল্যাশ {বন্ধনী} থেকে বেরিয়ে যায় যাতে এটি নিয়মিত এক্সপ্রেশনের অংশ হিসাবে কাজ করে তবে তা কি [0- 9] {3} এর অর্থ বলে বোঝায় যা 0 এবং 9 এর তিনবারের মধ্যে কোনও সংখ্যা।
নিম্নোক্তভাবে কার্লি বন্ধনীগুলিও ব্যবহার করা যায়:
{5,10}
{5,}
{5,10} মানে যে চরিত্রটি অনুসন্ধান করা হয়েছে তা অবশ্যই কমপক্ষে 5 বার পুনরাবৃত্তি করা উচিত কিন্তু 10 এর বেশি নয় তবে {5,} এর মানে হল যে চরিত্রটি অন্তত 5 বার পুনরাবৃত্তি করা উচিত কিন্তু এটি তার চেয়ে বেশি হতে পারে।
09 এর 09
Grep ব্যবহার করে অন্যান্য কমান্ডগুলি থেকে আউটপুট ব্যবহার করা হচ্ছে
এই পর্যন্ত আমরা পৃথক ফাইল মধ্যে প্যাটার্ন প্যাটার্ন তাকিয়ে আছে কিন্তু grep প্যাটার্ন মিলের জন্য ইনপুট হিসাবে অন্যান্য কমান্ড থেকে আউটপুট ব্যবহার করতে পারেন।
এই একটি মহান উদাহরণ ps কমান্ড ব্যবহার করে যা সক্রিয় প্রসেস তালিকাভুক্ত।
উদাহরণস্বরূপ নিম্নলিখিত কমান্ডটি চালান:
ps -ef
আপনার সিস্টেমে সমস্ত চলমান প্রসেস প্রদর্শিত হবে।
আপনি একটি নির্দিষ্ট চলমান প্রক্রিয়া অনুসন্ধানের জন্য grep ব্যবহার করতে পারেন:
ps -ef | grep ফায়ারফক্স