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

লিনাক্সে ফাইলে নির্দিষ্ট শব্দ খুঁজে বের করুন

ডিফল্টরূপে, অধিকাংশ সার্চ টুল ফাইল নামের ওপর লুকায়, ফাইল কন্টেন্টসের ওপর নয়। যাইহোক, সবচেয়ে বিখ্যাত GNU সার্চ প্রোগ্রাম, grep, সঠিক ফ্ল্যাগস দিয়ে ফাইলগুলোর ভিতর झাঁকে। এখানে আমরা আপনাকে দেখাব কীভাবে আপনি লিনাক্সে একটি ফাইলে নির্দিষ্ট শব্দ(গুলো) খুঁজে বের করতে পারেন।

grep ব্যবহার করে একটি ফাইলে নির্দিষ্ট শব্দ খুঁজুন

লিনাক্সে ফাইলে নির্দিষ্ট শব্দ খুঁজে বের করুন

ডিফল্টরূপে, grep ফাইল কন্টেন্টসের পাশাপাশি ফাইল নামেও সার্চ করে। এটি অধিকাংশ লিনাক্স সিস্টেমে অন্তর্ভুক্ত থাকে এবং সাধারণত ডিস্ট্রোগুলোতে অভিন্ন।そう言うと, ছোট বা কম শক্তিশালী লিনাক্স বক্সগুলো হয়তো একটি ভিন্ন কমান্ড, যেন ack, রান করতে পছন্দ করবে।

ফাইল কীভাবে এনকোডেড সেটির ওপর নির্ভর করে, grep সবসময় ভিতর দেখতে সক্ষম নাও হতে পারে। কিন্তু অধিকাংশ টেক্সট-ভিত্তিক ফরম্যাটের জন্য, grep নির্দিষ্ট প্যাটার্নের জন্য ফাইলের টেক্সট স্ক্যান করতে পারে।

grep -Rw '/path/to/search/' -e 'pattern'

-R ফ্ল্যাগ grep-কে রিকার্সিভ মোডে সেট করে, নির্দিষ্ট ডিরেক্টরির মধ্যে থাকা সকল ডিরেক্টরি নেভিগেট করে। -w ফ্ল্যাগ হোল ওয়ার্ড ম্যাচের জন্য সার্চ করে। এর মানে 'red' শুধু 'red' ম্যাচ করবে যা হোয়াইটস্পেস ক্যারেক্টার দ্বারা ঘেরা থাকবে, 'redundant' বা 'tired' নয়। -e ফ্ল্যাগ সার্চ করার প্যাটার্নকে প্রিফেস করে। এটি ডিফল্টরূপে রেগুলার এক্সপ্রেশন সাপোর্ট করে।

grep দ্রুত করতে, আপনি --exclude এবং --include ফ্ল্যাগ ব্যবহার করতে পারেন সার্চকে নির্দিষ্ট টাইপের ফাইলগুলোর মধ্যে সীমাবদ্ধ করতে। উদাহরণস্বরূপ, --exclude=*.csv .csv এক্সটেনশন वाले যেকোনো ফাইলের ভিতর সার্চ করবে না। --include=*.txt, অন্যদিকে, শুধু .txt এক্সটেনশন वाले ফাইলগুলোর ভিতর সার্চ করবে। ফ্ল্যাগটি grep কমান্ডের ঠিক পরে যোগ করা যায়, নিচের মতো:

grep --exclude=*.csv -Rw '/path/to/search' -e 'pattern'

আপনি নির্দিষ্ট ডিরেক্টরিও বাদ দিতে পারেন নিচের ফরম্যাট ফলো করে:

grep --exclude-dir={dir1,dir2,*_old} -Rw '/path/to/search' -e 'pattern'

এই কমান্ড প্রেজেন্ট ওয়ার্কিং ডিরেক্টরিতে dir1, dir2, বা *_old প্যাটার্ন মিল করার যেকোনো ডিরেক্টরিতে সার্চ করবে না, সেগুলো সার্চ প্রসেস থেকে এলিমিনেট করবে। এটি নির্দিষ্ট রিকার্সিভ, ফুল-ওয়ার্ড ম্যাচ সার্চ এক্সিকিউট করবে প্রেজেন্ট ওয়ার্কিং ডিরেক্টরিতে অন্যান্য সকল ফাইলের ওপর।

find ব্যবহার করে একটি ফাইলে নির্দিষ্ট শব্দ খুঁজুন

লিনাক্সে ফাইলে নির্দিষ্ট শব্দ খুঁজে বের করুন

find কমান্ডের সিনট্যাক্স grep চেয়ে বেশি জটিল, কিছু লোক এটি পছন্দ করে।

find . -name "*.php" -exec grep "pattern" {} \;

এই কমান্ড find-এর -exec ফ্ল্যাগ ব্যবহার করে খুঁজে পাওয়া ফাইলগুলো grep-এ পাস করে সার্চ করার জন্য। সিনট্যাক্সের একটি চতুর ব্যবস্থাপনা দিয়ে, আপনি find-এর দ্রুত ফাইল সিস্টেম সার্চ ব্যবহার করতে পারেন আপনি যে স্পেসিফিক ফাইল টাইপগুলোতে সার্চ করতে চান সেগুলো লোকেট করতে, তারপর সেগুলো grep-এ পাইপ করুন ফাইল ভিতরে সার্চ করার জন্য।

নোট করুন যে find শুধু ফাইল নামের ওপর লুকায়, কন্টেন্টসের ওপর নয়। সেটিই কারণ grep ফাইল টেক্সট এবং কন্টেন্টস সার্চ করার জন্য দরকার। নরমাল grep ফ্ল্যাগগুলো -exec ফ্ল্যাগ থেকে সম্পূর্ণরূপে অপারেশনাল থাকবে।

ack ব্যবহার করে একটি ফাইলে নির্দিষ্ট শব্দ খুঁজুন

ack কমান্ড সম্ভবত সবচেয়ে দ্রুত সার্চিং টুল, কিন্তু এটি উপরের অপশনগুলো만큼 জনপ্রিয় নয়। নিচের কমান্ড করেন্ট ডিরেক্টরির ভিতর সার্চ করবে।

ack 'pattern'

আপনি যদি একটি নির্দিষ্ট ফাইল বা ডিরেক্টরির ভিতর সার্চ করতে চান, তবে আপনি সেটি আপনার সার্চের সাথে অ্যাপেন্ড করতে পারেন।

ack 'pattern' /path/to/file.txt

উপসংহার

অধিকাংশ লোকের অধিকাংশ পরিস্থিতিতে, grep সবচেয়ে ভালো ব্যাপকভাবে উপলব্ধ সার্চ টুল। আপনি অন্যান্য সার্চ টুলও দেখতে পারেন, যেন RipGrep, দ্রুত সার্চিং অপশনগুলো জন্য।

  1. লিনাক্স ইনোড কীভাবে কাজ করে?

  2. লিনাক্সে জিপ ফাইল এক্সট্র্যাক্ট করার পদ্ধতি

  3. উইন্ডোজ ১০-এ হারানো ফাইল দ্রুত খুঁজে বের করুন: ধাপে ধাপে গাইড

  4. লিনাক্সে ফাইল Permanently ডিলিট করুন – ধাপে ধাপে গাইড