এই নির্দেশিকা ব্যাখ্যা করে কিভাবে grep ব্যবহার করতে হয় একাধিক শব্দ, স্ট্রিং, অনুসন্ধানের জন্য ইউটিলিটি এবং প্যাটার্ন। আপনি নীচে এটি সম্পন্ন করতে ব্যবহৃত কমান্ডের সম্পূর্ণ উদাহরণ খুঁজে পেতে পারেন।
গ্রেপ কি?
যখন আমরা grep উল্লেখ করি, তখন আমরা কমান্ড-লাইন ফাংশন সম্পর্কে কথা বলছি . গ্রেপ মানে গ্লোবাল রেগুলার এক্সপ্রেশন প্রিন্ট। সংক্ষেপে, এটি একটি নির্দিষ্ট রেগুলার এক্সপ্রেশনের সাথে মিলে যায় এমন লাইনের সন্ধানে ইনপুট ফাইলগুলি অনুসন্ধান করবে। এটি স্ট্যান্ডার্ড আউটপুটের জন্য প্রতিটি লাইন লিখে ফলাফল প্রদান করে।
গ্রেপ ইউটিলিটি তিনটি এক্সপ্রেশন সিনট্যাক্সের জন্য উপযুক্ত। এগুলি বেসিক, এক্সটেন্ডেড বা পার্ল-সামঞ্জস্যপূর্ণ হিসাবে নির্দিষ্ট করা যেতে পারে। যদি কোন রেগুলার এক্সপ্রেশন সিনট্যাক্স নির্দিষ্ট করা না থাকে, তাহলে GNY grep সার্চ প্যাটার্নগুলিকে মৌলিক এক্সপ্রেশন হিসেবে সেট করবে।
একাধিক প্যাটার্নের জন্য গ্রেপ
আপনি যদি একাধিক প্যাটার্ন অনুসন্ধান করতে চান, আপনি OR অপারেটর ব্যবহার করতে পারেন, যাকে বিকল্প অপারেটর বলা হয়। এই অপারেটর/পাইপ দেখতে এইরকম:|
এটি ব্যবহারকারীকে সমস্ত সম্ভাব্য মিলগুলি নির্দিষ্ট করতে সক্ষম করবে, সেগুলি এক্সপ্রেশন সেট বা আক্ষরিক স্ট্রিং হোক। যেমন, একাধিক প্যাটার্ন অনুসন্ধান করার জন্য, ইনপুট হবে:
$ grep 'first pattern\|second pattern' filename
'প্রথম প্যাটার্ন৷ ' এবং 'দ্বিতীয় প্যাটার্ন ' আপনি যে সম্ভাব্য নিদর্শনগুলির জন্য অনুসন্ধান করছেন তার দ্বারা প্রতিস্থাপিত হবে৷ এই রেগুলার এক্সপ্রেশন - 'প্রথম প্যাটার্ন\|দ্বিতীয় প্যাটার্ন ' - সর্বদা একক উদ্ধৃতিতে আবদ্ধ করা উচিত। পাইপ প্রতীক একটি বিকল্প অপারেটর হিসাবে সমর্থিত নয় এবং যেমন পালানো (ব্যাকস্ল্যাশ ) গ্রেপকে পাইপকে ভিন্নভাবে নির্দেশ দেওয়ার জন্য অক্ষর প্রয়োজন।
একটি বর্ধিত রেগুলার এক্সপ্রেশন হিসাবে উদ্দিষ্ট প্যাটার্ন নির্দিষ্ট করার জন্য, '-e ' অথবা '—extended-regexp ' ব্যবহার করা যেতে পারে. যেমন:
$ grep -E 'first pattern|second pattern' filename
একটি বর্ধিত রেজেক্সে, আপনাকে পাইপ থেকে পালানোর প্রয়োজন নেই৷
৷আপনি ফাইল দ্বারা অনুসন্ধান করতে পারেন, তাই presentation.txt এর মধ্যে অনুসন্ধানের ধরণগুলি এইরকম দেখতে পারে:
$ grep -E 'first pattern|second pattern' presentation.txt
আউটপুট স্ট্রিংগুলিকে দেখাবে যেগুলি আপনি গ্রেপ হাইলাইট করতে চান৷
আপনি যে ফাইলটি অনুসন্ধান করছেন তা যদি অন্য ডিরেক্টরির মধ্যে থাকে তবে আপনাকে সম্পূর্ণ ফাইল পাথ ব্যবহার করে সেই নির্দিষ্ট ডিরেক্টরিতে অনুসন্ধান করার জন্য গ্রেপকে নির্দেশ দিতে হবে। যেমন:
$ grep -E 'first pattern|second pattern' /home/presentation.txt
একাধিক স্ট্রিংয়ের জন্য গ্রেপ
নিদর্শনগুলির মধ্যে সবচেয়ে মৌলিক হল আক্ষরিক স্ট্রিং। একাধিক স্ট্রিং অনুসন্ধান করতে, আপনি grep কমান্ডের পরে এগুলি লিখবেন। কল্পনা করুন আমরা 'একটি অনুসন্ধান করছি৷ ', 'দুই ', এবং 'তিন ' এটি দেখতে এইরকম হতে পারে:
$ grep 'one\|two\|three'
সেই কমান্ড অনুসরণ করুন আপনি যে ফাইলটিতে অনুসন্ধান করছেন তার সাথে। আপনি যদি বর্ধিত রেগুলার এক্সপ্রেশন ব্যবহার করে অনুসন্ধান করছেন, তাহলে আপনি মূলত '\ মুছে ফেলছেন ' যেমন:
$ grep -E 'one|two|three'
কেস সংবেদনশীলতা উপেক্ষা করুন
'grep' কমান্ডটি কেস সংবেদনশীল। চিঠির ক্ষেত্রে উপেক্ষা করতে, '-i দিয়ে ডাকুন৷ ' বা '—উপেক্ষা-কেস ' বিকল্প। উদাহরণস্বরূপ:
$ grep -i 'one\|two\|three'
একাধিক ম্যাচের সংখ্যা প্রদর্শন করা হচ্ছে
আপনি যদি একটি লগ ফাইলের মধ্যে থাকেন এবং সতর্কতা এবং ত্রুটি বার্তার সংখ্যা বাড়বে কিনা তা জানতে চান, কিন্তু সম্পূর্ণ বিশদ ফলাফল না দেখে, আপনি '-c ব্যবহার করতে পারেন ' myapp.log-এর মধ্যে একাধিক মিল গণনা করতে ফাইল, এটি দেখতে এইরকম হতে পারে:
grep -c 'one\|two\|three' /var/log/myapp.log
Grep একাধিক প্যাটার্ন নির্দিষ্ট ফাইল প্রকারে
একটি নির্দিষ্ট ফাইল প্রকারে একাধিক স্ট্রিং অনুসন্ধান করা যেতে পারে। এটি আপনাকে অনুসন্ধান করতে দেয়, উদাহরণস্বরূপ, একটি ডিরেক্টরির মধ্যে সমস্ত পাঠ্য ফাইল বা সমস্ত লগফাইল। ফাইলের নামের পরিবর্তে ফাইল এক্সটেনশনের সাথে একটি তারকাচিহ্ন ব্যবহার করা গ্রেপকে নির্দেশ দেবে। ত্রুটির বার্তাগুলির জন্য উপরের উদাহরণটি ব্যবহার করে, সমস্ত লগ ফাইলগুলি দেখতে এইরকম হতে পারে:
grep -c 'one\|two\|three' /var/log/*.log
একাধিক ম্যাচের জন্য বারবার অনুসন্ধান করা হচ্ছে
grep ব্যবহার করে শুধুমাত্র বর্তমান ডিরেক্টরির মধ্যে ব্যবহার করা তারকাচিহ্নের সাথে অনুসন্ধান করা হবে। আপনি যদি সমস্ত সাবডিরেক্টরি অন্তর্ভুক্ত করতে চান, তাহলে '-R' বিকল্পটি ব্যবহার করা যেতে পারে:
grep -R 'one\|two\|three' /var/log/*.log
এটি তারপর নির্দিষ্ট var/log/ ডিরেক্টরি এবং সাবডিরেক্টরিগুলির মধ্যে পাওয়া সমস্ত ফাইলের ফলাফল প্রদান করবে৷
সঠিক মিলের জন্য grep ব্যবহার করা
'grep' কমান্ডটি সমস্ত ফলাফল প্রদর্শন করবে যেখানে স্ট্রিংটি এমবেড করা হয়েছে এবং শুধুমাত্র সঠিক মিল নয়। উদাহরণস্বরূপ, 'মান' অনুসন্ধান করার সময় এটি 'মান' এবং 'মূল্যবান' অন্তর্ভুক্ত লাইনগুলি মুদ্রণ করবে। আপনি যদি পুরো শব্দের সঠিক মিলের সাথে লাইনগুলি ফেরত দিতে চান তবে আপনি '-w ব্যবহার করতে পারেন ' অথবা '—word-regexp ' আপনি যদি 'একটি এর সঠিক মিলগুলি অনুসন্ধান করেন তবে এটি দেখতে এমন হতে পারে৷ ', 'দুই ', এবং 'তিন ':
$ grep -w 'one\|two\|three'
শব্দ অক্ষরগুলি আলফানিউমেরিক সহ, তাই 0-9 এবং a-z প্লাস আন্ডারস্কোর অক্ষর। অন্য যে কোনো অ-শব্দ অক্ষর বলে মনে করা হয়।