কম্পিউটার টিউটোরিয়াল

Grep মাস্টার করুন: একাধিক ওয়ার্ড, স্ট্রিং, ও প্যাটার্ন সার্চ করুন সহজে

এই গাইডে grep ইউটিলিটি ব্যবহার করে একাধিক ওয়ার্ড, স্ট্রিং, এবং প্যাটার্ন সার্চ করার পদ্ধতি ব্যাখ্যা করা হয়েছে। নিচে কমান্ডের পূর্ণ উদাহরণ দেওয়া আছে।

Grep কী?

যখন আমরা grep বলি, আমরা কমান্ড-লাইন ফাংশন-এর কথা বলি। Grep মানে Global Regular Expression Print। সারসংক্ষেপে, এটি ইনপুট ফাইলগুলো সার্চ করে যেসব লাইন একটি নির্দিষ্ট রেগুলার এক্সপ্রেশনের সাথে ম্যাচ করে। তারপর প্রতিটি লাইন স্ট্যান্ডার্ড আউটপুট-এ লিখে রেজাল্ট রিটার্ন করে।

grep ইউটিলিটি তিনটি এক্সপ্রেশন সিনট্যাক্সের জন্য উপযুক্ত। এগুলো Basic, Extended বা Perl-compatible হিসেবে স্পেসিফাই করা যায়। যদি কোনো রেগুলার এক্সপ্রেশন সিনট্যাক্স স্পেসিফাই না করা হয়, তবে GNU grep সার্চ প্যাটার্নগুলোকে বেসিক এক্সপ্রেশন হিসেবে সেট করে।

একাধিক প্যাটার্নের জন্য Grep

আপনি যদি একাধিক প্যাটার্ন সার্চ করতে চান, তবে OR অপারেটর ব্যবহার করতে পারেন, যাকে অল্টারনেশন অপারেটর বলা হয়। এই অপারেটর/পাইপটি নিচের মতো দেখে: |

এটি ব্যবহারকারীকে সকল সম্ভাব্য ম্যাচ স্পেসিফাই করতে দেয়, চাহে সেটি এক্সপ্রেশন সেট হোক বা লিটারেল স্ট্রিং। তাই, একাধিক প্যাটার্ন সার্চ করার জন্য ইনপুট হবে:

$ grep 'first pattern\|second pattern' filename

‘first pattern‘ এবং ‘second pattern‘ কে আপনার সার্চ করার প্যাটার্নগুলো দিয়ে রিপ্লেস করুন। এই রেগুলার এক্সপ্রেশন — ‘first pattern\|second pattern‘ — সবসময় সিঙ্গেল কোটেশন মার্কে এক্লোজড থাকতে হবে। পাইপ সিম্বল অল্টারনেশন অপারেটর হিসেবে সাপোর্টেড নয় এবং তাই এস্কেপ (ব্যাকস্ল্যাশ) ক্যারেক্টার দরকার grep-কে পাইপকে ভিন্নভাবে ইনস্ট্রাক্ট করার জন্য।

ইন্টেন্ডেড প্যাটার্নকে এক্সটেন্ডেড রেগুলার এক্সপ্রেশন হিসেবে স্পেসিফাই করতে ‘-e‘ বা ‘—extended-regexp‘ ব্যবহার করা যায়। উদাহরণস্বরূপ:

$ grep -E 'first pattern|second pattern' filename

এক্সটেন্ডেড রেজেক্সে, পাইপ এস্কেপ করার দরকার নেই।

ফাইলের মাধ্যমে সার্চ করা যায়, তাই presentation.txt-এ প্যাটার্ন সার্চ করতে নিচের মতো হতে পারে:

$ grep -E 'first pattern|second pattern' presentation.txt

আউটপুটে আপনার সার্চ করা স্ট্রিংগুলো হাইলাইটেড দেখাবে।

যদি ফাইলটি অন্য ডিরেক্টরিতে থাকে, তবে grep-কে স্রেক্টিক उस ডিরেক্টরিতে সার্চ করার জন্য ফুল ফাইল পথ ব্যবহার করতে হবে। উদাহরণস্বরূপ:

$ grep -E 'first pattern|second pattern' /home/presentation.txt

একাধিক স্ট্রিং-এর জন্য Grep

সবচেয়ে বেসিক প্যাটার্ন হচ্ছে লিটারেল স্ট্রিং। একাধিক স্ট্রিং সার্চ করতে, grep কমান্ডের পরে সেগুলো লিখুন। মনে করুন আমরা ‘one‘, ‘two‘, এবং ‘three‘ সার্চ করছি। সেটি নিচের মতো দেখাবে:

$ grep 'one\|two\|three'

সেটিরপর command-এর সাথে সার্চ করার ফাইলটি যোগ করুন। এক্সটেন্ডেড রেগুলার এক্সপ্রেশন ব্যবহার করলে আপনি মূলত ‘\‘ রিমুভ করছেন। উদাহরণস্বরূপ:

$ grep -E 'one|two|three'

কেস সেনসিটিভিটি ইগনোর করা

‘grep’ কমান্ড কেস সেনসিটিভ। লেটার কেস ইগনোর করতে ‘-i‘ বা ‘—ignore-case‘ অপশন আহ্বান করুন। উদাহরণস্বরূপ:

$ grep -i 'one\|two\|three'

একাধিক ম্যাচের কাউন্ট ডিসপ্লে করা

আপনি যদি একটি লগ ফাইলে থাকেন এবং জানতে চান ওয়ার্নিং এবং এরর মেসেজের সংখ্যা বেড়েছে কিনা, কিন্তু ফুল ডিটেইলড রেজাল্ট ছাড়া, তবে ‘-c‘ ব্যবহার করতে পারেন। myapp.log ফাইলে একাধিক ম্যাচ কাউন্ট করতে নিচের মতো হবে:

grep -c 'one\|two\|three' /var/log/myapp.log

নির্দিষ্ট ফাইল টাইপে একাধিক প্যাটার্ন Grep করা

একাধিক স্ট্রিং নির্দিষ্ট ফাইল টাইপে সার্চ করা যায়। এটি আপনাকে অনুমতি দেয়, উদাহরণস্বরূপ, একটি ডিরেক্টরির সকল টেক্সট ফাইল বা সকল লগফাইল সার্চ করতে। ফাইলনেমের বদলে ফাইল এক্সটেনশনসহ একটি অ্যাসটেরিস্ক ব্যবহার করলে grep-কে ইনস্ট্রাক্ট করবে। উপরের এরর মেসেজ উদাহরণ ব্যবহার করে, সকল লগ ফাইল খোঁজা নিচের মতো দেখাবে:

grep -c 'one\|two\|three' /var/log/*.log

রিকার্সিভলি একাধিক ম্যাচ সার্চ করা

অ্যাসটেরিস্ক ব্যবহার করলে grep শুধু কারেন্ট ডিরেক্টরি সার্চ করবে। আপনি যদি সকল সাবডিরেক্টরিইনক্লুড করতে চান, তবে ‘-R’ অপশন ব্যবহার করুন:

grep -R 'one\|two\|three' /var/log/*.log

এটি স্পেসিফাইড var/log/ ডিরেক্টরি এবং সাবডিরেক্টরিতে পাওয়া সকল ফাইলের জন্য রেজাল্ট রিটার্ন করবে।

এگزাক্ট ম্যাচের জন্য grep ব্যবহার করা

‘grep’ কমান্ড স্ট্রিং এম্বেডেড থাকা সকল রেজাল্ট দেখাবে, শুধু এক্সাক্ট ম্যাচ নয়। উদাহরণস্বরূপ, ‘value’ সার্চ করলে ‘values’ এবং ‘valued’-ও প্রিন্ট করবে। আপনি যদি শুধু পুরো শব্দের এক্সাক্ট ম্যাচ চান, তবে ‘-w‘ বা ‘—word-regexp‘ ব্যবহার করুন। ‘one‘, ‘two‘, এবং ‘three‘-র এক্সাক্ট ম্যাচ সার্চ করলে নিচের মতো দেখাবে:

$ grep -w 'one\|two\|three'

ওয়ার্ড ক্যারেক্টার ইনক্লুড করে অ্যালফানিউমেরিক, যাতে 0-9 এবং a-z প্লাস আন্ডারস্কোর ক্যারেক্টার। অন্য সব নন-ওয়ার্ড ক্যারেক্টার হিসেবে বিবেচিত হয়।

  1. উইন্ডোজ 11 সিস্টেম রিস্টোর মাস্টার করুন: সেটআপ, ব্যবহার ও সুবিধা

  2. ফ্রি উইন্ডোজ ১০: কানূনোভাবে প্রাপ্ত এবং নিরাপদে এক্টিভেট করার উপায়

  3. রিয়েল-টাইম টিম কল্যাবোরেশনের জন্য এক্সেল ফাইল স্মুথলি শেয়ার করুন

  4. ২০২২ সালে Windows 10 ম্যানুয়ালি চেক ও আপডেট করার পূর্ণ গাইড