Skill

Sed এবং অন্যান্য Text Utilities (awk, grep) এর সাথে Integration

Sed এবং Shell Scripting (সেড এবং শেল স্ক্রিপ্টিং) - সেড (Sed) - Computer Programming

409

Sed, awk, এবং grep তিনটি অত্যন্ত শক্তিশালী টেক্সট প্রক্রিয়াকরণ টুল, যা Unix/Linux সিস্টেমে ব্যবহার করা হয়। এই টুলগুলোর একে অপরের সাথে integration বা সমন্বয় করে আরও জটিল এবং শক্তিশালী টেক্সট ম্যানিপুলেশন সম্ভব। এখানে আলোচনা করা হবে কিভাবে Sed, awk, এবং grep এর সাথে একত্রে কাজ করা যায় এবং তাদের মাধ্যমে আরও শক্তিশালী text processing প্রক্রিয়া করা যায়।


1. Sed এবং Awk এর Integration

Awk হল একটি শক্তিশালী টুল যা টেবিলের মতো ডেটা বা ফাইলের কলাম ভিত্তিক প্রক্রিয়া করার জন্য ব্যবহৃত হয়, এবং Sed হলো একটি লাইনের মধ্যে টেক্সট পরিবর্তন বা ম্যানিপুলেট করার জন্য ব্যবহৃত টুল। এই দুটি টুল একত্রে ব্যবহার করে আপনি column-based text manipulation করতে পারেন এবং সেই সাথে pattern-based modifications করতে পারেন।

উদাহরণ 1: Awk এবং Sed একত্রে ব্যবহার করা

ধরা যাক, আপনি একটি ফাইলে প্রথম কলামে "cat" শব্দটিকে "dog" দিয়ে পরিবর্তন করতে চান, এবং তারপর এই ফাইলের কলামগুলোর মধ্যে কিছু যোগ করতে চান:

awk '{print $1, $2}' file.txt | sed 's/cat/dog/g'

এটি:

  • awk '{print $1, $2}': প্রথম দুটি কলামকে বের করবে।
  • sed 's/cat/dog/g': "cat" শব্দটিকে "dog"-এ প্রতিস্থাপন করবে।

উদাহরণ 2: Awk-এর মাধ্যমে কলাম বাছাই করে, Sed দিয়ে পরিবর্তন করা

আপনি যদি কোনো কলামে "apple" শব্দটি খুঁজে বের করতে চান এবং তারপর সেটা পরিবর্তন করতে চান, তাহলে:

awk '$1 == "apple" {print $1, $2}' file.txt | sed 's/apple/orange/g'

এটি:

  • awk '$1 == "apple" {print $1, $2}': শুধুমাত্র যেসব লাইন প্রথম কলামে "apple" আছে, সেগুলো প্রিন্ট করবে।
  • sed 's/apple/orange/g': "apple" শব্দটিকে "orange"-এ পরিবর্তন করবে।

2. Sed এবং Grep এর Integration

Grep হলো একটি শক্তিশালী টুল যা টেক্সট ফাইলে নির্দিষ্ট প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। Sed এবং Grep একত্রে ব্যবহার করে আপনি টেক্সট ফাইলে নির্দিষ্ট প্যাটার্ন খুঁজে সেই প্যাটার্নের উপর কাজ করতে পারেন, যেমন টেক্সট পরিবর্তন বা সংশোধন করা।

উদাহরণ 1: Grep এবং Sed একত্রে ব্যবহার করা

আপনি যদি শুধুমাত্র এমন লাইনগুলোর সাথে কাজ করতে চান যেগুলোর মধ্যে "apple" শব্দটি রয়েছে, তাহলে প্রথমে grep ব্যবহার করে সেই লাইনগুলো বের করতে পারেন, তারপর sed দিয়ে সংশোধন করতে পারেন:

grep "apple" file.txt | sed 's/apple/orange/g'

এটি:

  • grep "apple": file.txt ফাইল থেকে শুধুমাত্র সেই লাইনগুলো খুঁজে বের করবে যেখানে "apple" শব্দটি রয়েছে।
  • sed 's/apple/orange/g': "apple" শব্দটিকে "orange"-এ পরিবর্তন করবে।

উদাহরণ 2: Sed এবং Grep ব্যবহার করে নির্দিষ্ট লাইন মুছে ফেলা

আপনি যদি ফাইলের এমন লাইনগুলো মুছে ফেলতে চান যেগুলোর মধ্যে "error" শব্দটি রয়েছে, তাহলে:

grep -v "error" file.txt | sed 's/old_text/new_text/g'

এটি:

  • grep -v "error": "error" শব্দযুক্ত লাইনগুলো বাদ দিয়ে বাকি লাইনগুলো আউটপুট করবে।
  • sed 's/old_text/new_text/g': বাকি লাইনগুলোর মধ্যে old_text কে new_text দিয়ে প্রতিস্থাপন করবে।

3. Sed, Awk, এবং Grep একত্রে ব্যবহার করা

এই তিনটি টুল একত্রে ব্যবহার করে আপনি আরো জটিল টেক্সট প্রক্রিয়াকরণ করতে পারেন। ধরুন, আপনি একটি ফাইলে প্রথম কলামে "apple" শব্দটি খুঁজে বের করতে চান, তারপর সেই লাইনটি সম্পূর্ণভাবে পরিবর্তন করতে চান এবং তারপর শুধু সেই লাইনগুলো দেখতে চান যেগুলোর মধ্যে "fruit" শব্দটি রয়েছে।

awk '$1 == "apple" {print $0}' file.txt | sed 's/apple/orange/g' | grep "fruit"

এটি:

  • awk '$1 == "apple" {print $0}': প্রথম কলামে "apple" থাকলে সেই লাইনগুলো আউটপুট করবে।
  • sed 's/apple/orange/g': "apple" শব্দটিকে "orange"-এ পরিবর্তন করবে।
  • grep "fruit": "fruit" শব্দটি যেসব লাইনে রয়েছে, সেগুলো আউটপুট করবে।

4. Sed এবং Awk এর মাধ্যমে Complex Data Processing

Awk এবং Sed এর মাধ্যমে আপনি আরও জটিল ডেটা প্রসেসিং করতে পারেন, যেমন নির্দিষ্ট ফিল্টারিং এবং টেক্সট পরিবর্তন, কলামের মধ্যে কাজ করা এবং পরবর্তীতে সেগুলোকে পরিবর্তন করা।

উদাহরণ: Awk দিয়ে কলাম বাছাই এবং Sed দিয়ে টেক্সট পরিবর্তন

awk '{print $1, $3}' file.txt | sed 's/apple/orange/g'

এটি:

  • awk '{print $1, $3}': প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে।
  • sed 's/apple/orange/g': প্রথম এবং তৃতীয় কলামে "apple" শব্দটি "orange"-এ পরিবর্তন করবে।

5. Regular Expressions ব্যবহার করে সিস্টেমের মধ্যে Filtering এবং Processing

Grep এবং Sed এর সাথে regular expressions ব্যবহার করে জটিল প্যাটার্ন matching এবং filtering করা যায়।

উদাহরণ: Regular Expressions ব্যবহার করে Filtering

grep -E '^a.*e$' file.txt | sed 's/apple/orange/g'

এটি:

  • grep -E '^a.*e$': এমন লাইনের মধ্যে "a" দিয়ে শুরু এবং "e" দিয়ে শেষ হওয়ার প্যাটার্ন খুঁজে বের করবে।
  • sed 's/apple/orange/g': "apple" শব্দটিকে "orange"-এ পরিবর্তন করবে।

Conclusion

Sed, awk, এবং grep এর মতো powerful টুলগুলো একত্রে ব্যবহার করে আপনি complex text processing এবং data manipulation করতে পারেন। এগুলোর মধ্যে:

  • Sed ব্যবহার করে টেক্সট পরিবর্তন এবং ফাইল ম্যানিপুলেশন করা হয়।
  • Awk ব্যবহার করে কলাম বা ফিল্ড ভিত্তিক প্রসেসিং করা হয়।
  • Grep ব্যবহার করে প্যাটার্ন ভিত্তিক লাইন ফিল্টারিং করা হয়।

এই টুলগুলোর একত্রিত ব্যবহার করে আপনি টেক্সট ফাইল বা ডেটাবেসে জটিল প্রক্রিয়া এবং বিশ্লেষণ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...