নিয়মিত অভিব্যক্তি ব্যবহার করে সাধারণ-পাঠ্য ডেটা অনুসন্ধানের জন্য সেরা 6 টি সি এল আই সরঞ্জামসমূহ


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

আরও বেশি অগ্রযাত্রা ছাড়াই আসুন ডুব দেই।

1. গ্রেপ কমান্ড

প্রথম স্থানে আসা গ্রেপ ইউটিলিটি সরঞ্জাম - এটি গ্লোবাল রেগুলার এক্সপ্রেশন প্রিন্টের একটি সংক্ষিপ্ত রূপ, একটি শক্তিশালী কমান্ড-লাইন সরঞ্জাম যা কোনও ফাইলের নির্দিষ্ট স্ট্রিং বা প্যাটার্ন অনুসন্ধান করার সময় কাজে আসে।

ডিফল্টরূপে আধুনিক লিনাক্স বিতরণগুলির সাথে গ্রেপ শিপগুলি এবং আপনাকে বিভিন্ন অনুসন্ধানের ফলাফলগুলি ফেরত দেওয়ার নমনীয়তা দেয়। গ্রেপ সহ, আপনি কার্যকারিতার বিশাল অ্যারে সম্পাদন করতে পারেন যেমন:

  • কোনও ফাইলে স্ট্রিং বা মিলের নিদর্শনগুলি অনুসন্ধান করুন
  • জিজিপ করা ফাইলগুলিতে স্ট্রিং বা মিলের নিদর্শনগুলির জন্য অনুসন্ধান করুন স্ট্রিং মিলগুলির সংখ্যা গণনা করুন
  • স্ট্রিং বা প্যাটার্নযুক্ত লাইন নম্বরগুলি মুদ্রণ করুন
  • ডিরেক্টরিতে স্ট্রিংটির জন্য পুনরাবৃত্তি অনুসন্ধান করুন
  • একটি বিপরীত অনুসন্ধান সম্পাদন করুন (অর্থাত্ স্ট্রিংয়ের ফলাফলগুলি অনুসন্ধানের মানদণ্ডের সাথে মেলে না) প্রদর্শন করুন
  • স্ট্রিংগুলির সন্ধানের ক্ষেত্রে কেস সংবেদনশীলতা উপেক্ষা করুন

গ্রেপ কমান্ডটি ব্যবহারের জন্য সিনট্যাক্সটি বেশ সহজ:

$ grep pattern FILE

উদাহরণস্বরূপ, কোনও ফাইলে ‘লিনাক্স’ স্ট্রিংটির সন্ধান করতে, হ্যালো ডট টেক্সট কেস সংবেদনশীলতা উপেক্ষা করার সময়, কমান্ডটি চালান:

$ grep -i Linux hello.txt

আপনি গ্রেপ ব্যবহার করতে পারেন এমন আরও বিকল্পগুলি পেতে, আমাদের নিবন্ধটি পড়ুন যা আরও উন্নত গ্রেপ কমান্ডের উদাহরণগুলির উদাহরণ দেয়।

2. সেড কমান্ড

একটি পাঠ্য ফাইলে ম্যানিপুলেশন পাঠ্য। সেড অনুসন্ধান, ফিল্টার এবং একটি ইন্টারেক্টিভ পদ্ধতিতে একটি প্রদত্ত ফাইলে স্ট্রিং প্রতিস্থাপন করে।

ডিফল্টরূপে, সেড কমান্ড আউটপুটটি STDOUT (স্ট্যান্ডার্ড আউট) এ মুদ্রণ করে, বোঝায় যে এক্সিকিউশনের ফলাফলটি কোনও ফাইলে সংরক্ষণ করার পরিবর্তে টার্মিনালে মুদ্রিত হয়।

শেড কমান্ডটি নিম্নরূপ:

$ sed -OPTIONS command [ file to be edited ]

উদাহরণস্বরূপ, ‘ইউনিক্স’ এর সমস্ত দৃষ্টান্তকে ‘লিনাক্স’ দিয়ে প্রতিস্থাপন করতে, আদেশটিটি অনুরোধ করুন:

$ sed 's/Unix/Linux' hello.txt

আপনি যদি টার্মিনালে মুদ্রণের পরিবর্তে আউটপুট পুনর্নির্দেশ করতে চান তবে প্রদর্শিত হিসাবে পুনঃনির্দেশ চিহ্ন (>) ব্যবহার করুন।

$ sed 's/Unix/Linux' hello.txt > output.txt

কমান্ডের আউটপুট স্ক্রিনে প্রিন্ট হওয়ার পরিবর্তে আউটপুট.টেক্সট ফাইলে সংরক্ষণ করা হয়।

ব্যবহার করা যেতে পারে এমন আরও বিকল্পগুলি পরীক্ষা করতে, ম্যান পৃষ্ঠাগুলি আবার একবার দেখুন।

$ man sed

3. আক কমান্ড

আক পার্ল লিখিত একটি দ্রুত এবং পোর্টেবল কমান্ড-লাইন সরঞ্জাম। আক গ্রেপ ইউটিলিটির জন্য বন্ধুত্বপূর্ণ প্রতিস্থাপন হিসাবে বিবেচিত হয় এবং ফলাফলগুলি দৃষ্টি আকর্ষণীয় পদ্ধতিতে ফলাফল দেয়।

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

আক কমান্ড সিনট্যাক্স:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

উদাহরণস্বরূপ, অনুসন্ধান শব্দ লিনাক্স পরীক্ষা করতে, চালনা করুন:

$ ack Linux hello.txt

অনুসন্ধান সরঞ্জামটি বেশ বুদ্ধিমান এবং ব্যবহারকারী যদি কোনও ফাইল বা ডিরেক্টরি সরবরাহ না করে তবে এটি অনুসন্ধানের প্যাটার্নের জন্য বর্তমান ডিরেক্টরি এবং সাব ডিরেক্টরিগুলি অনুসন্ধান করে d

নীচের উদাহরণে কোনও ফাইল বা ডিরেক্টরি সরবরাহ করা হয়নি তবে এসিসি স্বয়ংক্রিয়ভাবে উপলভ্য ফাইলটি সনাক্ত করেছে এবং প্রদত্ত মেলানো প্যাটার্নটি অনুসন্ধান করেছে।

$ ack Linux

আপনার সিস্টেমে ack ইনস্টল করতে কমান্ডটি চালান:

$ sudo apt install ack-grep    [On Debian/Ubuntu]
$ sudo dnf install ack-grep    [On CentOS/RHEL]

৪. আওক কমান্ড

আওক একটি সম্পূর্ণ স্ক্রিপ্টিং ভাষা এবং একটি পাঠ্য প্রক্রিয়াকরণ এবং ডেটা ম্যানিপুলেশন সরঞ্জাম। এটি ফাইল বা প্রোগ্রামগুলিতে অনুসন্ধান করে যা অনুসন্ধানের প্যাটার্ন ধারণ করে। স্ট্রিং বা প্যাটার্নটি পাওয়া গেলে, awk ম্যাচ বা লাইনের উপরে পদক্ষেপ নেয় এবং ফলাফলগুলি STDOUT এ মুদ্রণ করে।

AWK প্যাটার্নটি কোঁকড়া ধনুর্বন্ধনীগুলির মধ্যে আবদ্ধ থাকে যখন পুরো প্রোগ্রামটি একক উদ্ধৃতিতে আবদ্ধ থাকে।

আসুন সহজ উদাহরণটি নেওয়া যাক। ধরে নেওয়া যাক আপনি প্রদর্শিত হিসাবে আপনার সিস্টেমের তারিখ মুদ্রণ করছেন:

$ date

মনে করুন আপনি কেবলমাত্র প্রথম মানটি মুদ্রণ করতে চান যা সপ্তাহের দিন। সেক্ষেত্রে প্রদর্শিত হিসাবে আউটপুটটিকে পাইপ করুন:

$ date | awk '{print $1}'

পরবর্তী মানগুলি প্রদর্শন করতে, প্রদর্শিত হিসাবে কমা ব্যবহার করে এগুলি পৃথক করুন:

$ date | awk '{print $1,$2}'

উপরের কমান্ডটি সপ্তাহের দিন এবং মাসের তারিখ প্রদর্শন করবে।

আপনি awk সহ যে আরও বিকল্পগুলি ব্যবহার করতে পারেন তা পেতে, আমাদের awk কমান্ড সিরিজটি সহজভাবে পড়ুন।

5. সিলভার অনুসন্ধানকারী

সিলভার সন্ধানকারী হ'ল একটি ক্রস-প্ল্যাটফর্ম এবং ওপেনসোর্স কোড অনুসন্ধান সরঞ্জাম যা আককের অনুরূপ তবে গতির উপর জোর দিয়ে। এটি আপনার পক্ষে খুব কম সময়ের মধ্যে ফাইলগুলির মধ্যে একটি নির্দিষ্ট স্ট্রিং সন্ধান করা সহজ করে তোলে:

বাক্য গঠন:

$ ag OPTIONS search_pattern /path/to/file

উদাহরণস্বরূপ, একটি ফাইলে 'লিনাক্স' স্ট্রিংটির সন্ধান করতে হ্যালো.txt কমান্ডটি আহ্বান করুন:

$ ag Linux hello.txt

অতিরিক্ত বিকল্পগুলির জন্য, ম্যান পৃষ্ঠাগুলি দেখুন:

$ man ag

6. রিপগ্রিপ

শেষ অবধি, আমাদের কাছে রিপগ্রিপ কমান্ড-লাইন সরঞ্জাম রয়েছে। রিপগ্রিপ রেগেক্স নিদর্শন অনুসন্ধানের জন্য একটি ক্রস প্ল্যাটফর্ম ইউটিলিটি। এটি পূর্বনির্ধারিত সমস্ত অনুসন্ধান সরঞ্জামগুলির চেয়ে অনেক দ্রুত এবং পুনরাবৃত্তির সাথে মিলের নিদর্শনগুলির জন্য ডিরেক্টরি অনুসন্ধান করে। গতি এবং পারফরম্যান্সের ক্ষেত্রে, অন্য কোনও সরঞ্জাম সেই রিপগ্রাইপ থেকে দাঁড়ায় না।

ডিফল্টরূপে, রিপগ্রিপ বাইনারি ফাইল/লুকানো ফাইল এবং ডিরেক্টরিগুলি এড়িয়ে যায়। এছাড়াও, পরামর্শ দিন যে ডিফল্টরূপে এটি .gitignore/.ignore/.rgignore ফাইল দ্বারা অগ্রাহ্য করা ফাইলগুলির জন্য অনুসন্ধান করবে না।

রিপগ্রিপ আপনাকে নির্দিষ্ট ফাইল প্রকারের জন্য অনুসন্ধান করতে দেয়। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট ফাইলগুলিতে আপনার অনুসন্ধান সীমাবদ্ধ করতে:

$ rg -Tsj

রিপগ্রিপ ব্যবহারের বাক্য গঠনটি বেশ সহজ:

$ rg [OPTIONS] PATTERN [PATH...]

উদাহরণ স্বরূপ. বর্তমান ডিরেক্টরিতে থাকা ফাইলগুলিতে ‘লিনাক্স’ স্ট্রিংয়ের উদাহরণ অনুসন্ধান করতে কমান্ডটি চালান:

$ rg Linux

আপনার সিস্টেমে রিপগ্রিপ ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি চালান:

$ sudo apt install ripgrep      [On Debian/Ubuntu]
$ sudo pacman -S ripgrep        [On Arch Linux]
$ sudo zypper install ripgrep   [On OpenSuse]
$ sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

অতিরিক্ত বিকল্পগুলির জন্য, ম্যান পৃষ্ঠাগুলি দেখুন:

$ man rg

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