টেক্সট অনুসন্ধান কমান্ড: grep, awk, sed
UNIX এবং LINUX সিস্টেমে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য বিভিন্ন কমান্ড রয়েছে। এগুলি ডাটা ফাইলের মধ্যে প্যাটার্ন অনুসন্ধান, ফরম্যাটিং এবং পরিবর্তন করার জন্য ব্যবহৃত হয়। এখানে grep, awk, এবং sed কমান্ডগুলির বিস্তারিত ব্যাখ্যা দেওয়া হলো।
1. grep - টেক্সট অনুসন্ধান
grep (Global Regular Expression Print) কমান্ডটি টেক্সট ফাইলের মধ্যে একটি নির্দিষ্ট প্যাটার্ন বা শব্দ অনুসন্ধান করতে ব্যবহৃত হয়। এটি ফাইলের মধ্যে নির্দিষ্ট টেক্সট বা প্যাটার্ন খুঁজে বের করে এবং মেলে এমন লাইনগুলি প্রিন্ট করে।
বেসিক সিনট্যাক্স:
grep "pattern" filenameউদাহরণ:
একটি ফাইলে "hello" শব্দটি খুঁজে বের করার জন্য:
grep "hello" file.txtএটি
file.txtফাইলে "hello" শব্দটি থাকা সমস্ত লাইন প্রিন্ট করবে।সব ফাইলের মধ্যে "error" শব্দটি অনুসন্ধান করতে:
grep "error" *.logবড় বড় কেস-sensitive অনুসন্ধান বন্ধ করতে
-iঅপশন ব্যবহার করুন:grep -i "error" file.txtশুধুমাত্র ম্যাচের সংখ্যা দেখতে:
grep -c "pattern" filenamegrepএর সাথে পাইপ ব্যবহার করে অন্য কমান্ডের আউটপুট থেকে অনুসন্ধান:ps aux | grep "apache"
2. awk - টেক্সট প্রক্রিয়া ও ফরম্যাটিং
awk একটি শক্তিশালী টেক্সট প্রসেসিং কমান্ড যা ফাইলের প্রতিটি লাইনকে ফিল্ডে ভাগ করে এবং সেগুলি নিয়ে গণনা বা প্রক্রিয়াকরণ করতে ব্যবহৃত হয়। awk মূলত কলাম ভিত্তিক ডাটা বিশ্লেষণ এবং ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।
বেসিক সিনট্যাক্স:
awk 'pattern { action }' filenameউদাহরণ:
ফাইলের প্রথম কলাম প্রিন্ট করতে:
awk '{ print $1 }' file.txtশুধুমাত্র দ্বিতীয় কলাম প্রিন্ট করতে:
awk '{ print $2 }' file.txtনির্দিষ্ট কলামগুলির যোগফল বের করা:
awk '{ sum += $2 } END { print sum }' file.txtশর্ত ভিত্তিক প্রিন্টিং (যেমন, দ্বিতীয় কলামে 100 এর বেশি মান থাকলে প্রিন্ট করুন):
awk '$2 > 100 { print $1, $2 }' file.txtএকটি নির্দিষ্ট টেক্সট প্যাটার্ন অনুসন্ধান করতে:
awk '/pattern/ { print $1, $2 }' file.txtকলাম সেপারেটর পরিবর্তন করা (যেমন স্পেসের পরিবর্তে কমা):
awk -F "," '{ print $1, $2 }' file.csv
3. sed - স্ট্রিং বা টেক্সট পরিবর্তন
sed (Stream Editor) একটি স্ট্রিম এডিটর যা ফাইলের মধ্যে টেক্সট পরিবর্তন, ইনসার্ট, বা ডিলিট করতে ব্যবহৃত হয়। এটি মূলত এক্সপ্রেশন এবং স্ক্রিপ্ট ব্যবহার করে টেক্সটকে ম্যানিপুলেট করে।
বেসিক সিনট্যাক্স:
sed 'command' filenameউদাহরণ:
ফাইলের মধ্যে একটি নির্দিষ্ট শব্দ প্রতিস্থাপন (যেমন "hello" কে "world" দিয়ে প্রতিস্থাপন):
sed 's/hello/world/' file.txtপুরো ফাইলে সমস্ত "hello" কে "world" দিয়ে প্রতিস্থাপন করতে:
sed 's/hello/world/g' file.txtপরিবর্তনগুলো ফাইলে সেভ না করে টার্মিনালে দেখাতে:
sed 's/hello/world/g' file.txtটেক্সটের একটি নির্দিষ্ট লাইন মুছে ফেলতে:
sed '2d' file.txtএটি দ্বিতীয় লাইনটি মুছে ফেলবে।
নির্দিষ্ট লাইন বা অংশে টেক্সট ইনসার্ট করা:
sed '2i Hello World' file.txtএটি ফাইলের দ্বিতীয় লাইনে "Hello World" ইনসার্ট করবে।
টেক্সট প্রতিস্থাপন এবং ফাইলেই পরিবর্তন সেভ করা:
sed -i 's/old/new/g' file.txtএকটি নির্দিষ্ট প্যাটার্ন অনুযায়ী সমস্ত লাইন মুছে ফেলতে:
sed '/pattern/d' file.txt
সারসংক্ষেপ
grep: নির্দিষ্ট প্যাটার্ন অনুসন্ধান করে এবং মেলানো লাইন প্রিন্ট করে।awk: ফাইলের কলামভিত্তিক ডাটা প্রক্রিয়া করে এবং সেগুলির উপর বিভিন্ন কার্যক্রম সম্পাদন করে।sed: টেক্সট ফাইলের মধ্যে সরাসরি স্ট্রিং বা টেক্সট পরিবর্তন, মুছতে, অথবা ইনসার্ট করতে ব্যবহৃত হয়।
এই তিনটি কমান্ড UNIX এবং LINUX সিস্টেমের মধ্যে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য অত্যন্ত শক্তিশালী এবং গুরুত্বপূর্ণ টুল।
Read more