টেক্সট অনুসন্ধান কমান্ড: grep, awk, sed

বেসিক কমান্ডস - ইউনিক্স/লিনাক্স (UNIX / LINUX) - Computer Programming

186

টেক্সট অনুসন্ধান কমান্ড: grep, awk, sed

UNIX এবং LINUX সিস্টেমে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য বিভিন্ন কমান্ড রয়েছে। এগুলি ডাটা ফাইলের মধ্যে প্যাটার্ন অনুসন্ধান, ফরম্যাটিং এবং পরিবর্তন করার জন্য ব্যবহৃত হয়। এখানে grep, awk, এবং sed কমান্ডগুলির বিস্তারিত ব্যাখ্যা দেওয়া হলো।


1. grep - টেক্সট অনুসন্ধান

grep (Global Regular Expression Print) কমান্ডটি টেক্সট ফাইলের মধ্যে একটি নির্দিষ্ট প্যাটার্ন বা শব্দ অনুসন্ধান করতে ব্যবহৃত হয়। এটি ফাইলের মধ্যে নির্দিষ্ট টেক্সট বা প্যাটার্ন খুঁজে বের করে এবং মেলে এমন লাইনগুলি প্রিন্ট করে।

বেসিক সিনট্যাক্স:

grep "pattern" filename

উদাহরণ:

  1. একটি ফাইলে "hello" শব্দটি খুঁজে বের করার জন্য:

    grep "hello" file.txt

    এটি file.txt ফাইলে "hello" শব্দটি থাকা সমস্ত লাইন প্রিন্ট করবে।

  2. সব ফাইলের মধ্যে "error" শব্দটি অনুসন্ধান করতে:

    grep "error" *.log
  3. বড় বড় কেস-sensitive অনুসন্ধান বন্ধ করতে -i অপশন ব্যবহার করুন:

    grep -i "error" file.txt
  4. শুধুমাত্র ম্যাচের সংখ্যা দেখতে:

    grep -c "pattern" filename
  5. grep এর সাথে পাইপ ব্যবহার করে অন্য কমান্ডের আউটপুট থেকে অনুসন্ধান:

    ps aux | grep "apache"

2. awk - টেক্সট প্রক্রিয়া ও ফরম্যাটিং

awk একটি শক্তিশালী টেক্সট প্রসেসিং কমান্ড যা ফাইলের প্রতিটি লাইনকে ফিল্ডে ভাগ করে এবং সেগুলি নিয়ে গণনা বা প্রক্রিয়াকরণ করতে ব্যবহৃত হয়। awk মূলত কলাম ভিত্তিক ডাটা বিশ্লেষণ এবং ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।

বেসিক সিনট্যাক্স:

awk 'pattern { action }' filename

উদাহরণ:

  1. ফাইলের প্রথম কলাম প্রিন্ট করতে:

    awk '{ print $1 }' file.txt
  2. শুধুমাত্র দ্বিতীয় কলাম প্রিন্ট করতে:

    awk '{ print $2 }' file.txt
  3. নির্দিষ্ট কলামগুলির যোগফল বের করা:

    awk '{ sum += $2 } END { print sum }' file.txt
  4. শর্ত ভিত্তিক প্রিন্টিং (যেমন, দ্বিতীয় কলামে 100 এর বেশি মান থাকলে প্রিন্ট করুন):

    awk '$2 > 100 { print $1, $2 }' file.txt
  5. একটি নির্দিষ্ট টেক্সট প্যাটার্ন অনুসন্ধান করতে:

    awk '/pattern/ { print $1, $2 }' file.txt
  6. কলাম সেপারেটর পরিবর্তন করা (যেমন স্পেসের পরিবর্তে কমা):

    awk -F "," '{ print $1, $2 }' file.csv

3. sed - স্ট্রিং বা টেক্সট পরিবর্তন

sed (Stream Editor) একটি স্ট্রিম এডিটর যা ফাইলের মধ্যে টেক্সট পরিবর্তন, ইনসার্ট, বা ডিলিট করতে ব্যবহৃত হয়। এটি মূলত এক্সপ্রেশন এবং স্ক্রিপ্ট ব্যবহার করে টেক্সটকে ম্যানিপুলেট করে।

বেসিক সিনট্যাক্স:

sed 'command' filename

উদাহরণ:

  1. ফাইলের মধ্যে একটি নির্দিষ্ট শব্দ প্রতিস্থাপন (যেমন "hello" কে "world" দিয়ে প্রতিস্থাপন):

    sed 's/hello/world/' file.txt
  2. পুরো ফাইলে সমস্ত "hello" কে "world" দিয়ে প্রতিস্থাপন করতে:

    sed 's/hello/world/g' file.txt
  3. পরিবর্তনগুলো ফাইলে সেভ না করে টার্মিনালে দেখাতে:

    sed 's/hello/world/g' file.txt
  4. টেক্সটের একটি নির্দিষ্ট লাইন মুছে ফেলতে:

    sed '2d' file.txt

    এটি দ্বিতীয় লাইনটি মুছে ফেলবে।

  5. নির্দিষ্ট লাইন বা অংশে টেক্সট ইনসার্ট করা:

    sed '2i Hello World' file.txt

    এটি ফাইলের দ্বিতীয় লাইনে "Hello World" ইনসার্ট করবে।

  6. টেক্সট প্রতিস্থাপন এবং ফাইলেই পরিবর্তন সেভ করা:

    sed -i 's/old/new/g' file.txt
  7. একটি নির্দিষ্ট প্যাটার্ন অনুযায়ী সমস্ত লাইন মুছে ফেলতে:

    sed '/pattern/d' file.txt

সারসংক্ষেপ

  • grep: নির্দিষ্ট প্যাটার্ন অনুসন্ধান করে এবং মেলানো লাইন প্রিন্ট করে।
  • awk: ফাইলের কলামভিত্তিক ডাটা প্রক্রিয়া করে এবং সেগুলির উপর বিভিন্ন কার্যক্রম সম্পাদন করে।
  • sed: টেক্সট ফাইলের মধ্যে সরাসরি স্ট্রিং বা টেক্সট পরিবর্তন, মুছতে, অথবা ইনসার্ট করতে ব্যবহৃত হয়।

এই তিনটি কমান্ড UNIX এবং LINUX সিস্টেমের মধ্যে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য অত্যন্ত শক্তিশালী এবং গুরুত্বপূর্ণ টুল।

Content added By
Promotion

Are you sure to start over?

Loading...