Sed (Stream Editor) হলো একটি কমান্ড লাইন টুল যা টেক্সট ফাইল বা স্ট্রিমের মধ্যে রিয়েল-টাইমে পরিবর্তন করতে ব্যবহৃত হয়। এটি সাধারণত Unix বা Linux সিস্টেমে ব্যবহৃত হয় এবং বিশেষত স্ক্রিপ্টিং এবং অটোমেশন প্রক্রিয়ায় গুরুত্বপূর্ণ ভূমিকা রাখে। Sed টুলটি খুবই শক্তিশালী এবং এটি ফাইলগুলোর মধ্যে বিভিন্ন ধরনের পরিবর্তন করার জন্য ব্যবহৃত হয় যেমন: টেক্সট প্রতিস্থাপন, মুছে ফেলা, অথবা নতুন টেক্সট যোগ করা।
Sed এর মূল কার্যকারিতা
টেক্সট প্রতিস্থাপন: Sed এর সবচেয়ে সাধারণ ব্যবহার হলো কোনো নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে তার পরিবর্তে নতুন কিছু প্রতিস্থাপন করা। উদাহরণস্বরূপ, আপনি কোনো ফাইলে সমস্ত "cat" শব্দের পরিবর্তে "dog" রাখতে চাইলে Sed ব্যবহার করতে পারেন।
কমান্ড উদাহরণ:
sed 's/cat/dog/g' file.txtএই কমান্ডটি
file.txtফাইলে "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে।gঅর্থাৎ global নির্দেশক, সব occurrences পরিবর্তন করবে।লাইনের মুছে ফেলা: Sed ব্যবহার করে কোনো নির্দিষ্ট লাইন মুছে ফেলা যায়। উদাহরণস্বরূপ, আপনি যদি প্রথম লাইনটি মুছে ফেলতে চান, তাহলে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
কমান্ড উদাহরণ:
sed '1d' file.txtএটি
file.txtথেকে প্রথম লাইনটি মুছে ফেলবে। আপনি যদি নির্দিষ্ট রেঞ্জের মধ্যে লাইন মুছে ফেলতে চান, তাহলে সেই রেঞ্জটি নির্দেশ করতে পারেন:sed '2,4d' file.txtএই কমান্ডটি দ্বিতীয় থেকে চতুর্থ লাইন পর্যন্ত মুছে ফেলবে।
নতুন লাইন যোগ করা: Sed দিয়ে ফাইলের কোনো নির্দিষ্ট স্থানে নতুন লাইন যোগ করা যায়। উদাহরণস্বরূপ, আপনি যদি প্রথম লাইন পরবর্তী স্থানে একটি নতুন লাইন যোগ করতে চান, তাহলে কমান্ড হবে:
কমান্ড উদাহরণ:
sed '1a This is a new line' file.txtএখানে
aনির্দেশক নতুন লাইন যোগ করতে ব্যবহৃত হয় এবং1নির্দেশক প্রথম লাইনের পরে এই লাইনটি যোগ করা হবে।প্যাটার্নের উপর ভিত্তি করে পরিবর্তন: Sed ব্যবহার করে আপনি কোনো প্যাটার্ন খুঁজে সেটির উপর ভিত্তি করে পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, আপনি যদি শুধুমাত্র যেসব লাইন "cat" শব্দে শুরু হয় তা পরিবর্তন করতে চান, তাহলে এই কমান্ড ব্যবহার করতে পারেন:
কমান্ড উদাহরণ:
sed '/^cat/s/cat/dog/' file.txtএখানে
^catপ্যাটার্নটি নির্দেশ করছে যে, শুধুমাত্র যেসব লাইন "cat" দিয়ে শুরু হয় সেগুলোই পরিবর্তন হবে।শুধুমাত্র প্যাটার্ন ম্যাচ হওয়া লাইন প্রদর্শন করা: Sed দিয়ে আপনি যেসব লাইন প্যাটার্নের সাথে মিলবে, সেগুলো শুধুমাত্র প্রদর্শন করতে পারেন:
কমান্ড উদাহরণ:
sed -n '/cat/p' file.txtএই কমান্ডটি
file.txtথেকে শুধুমাত্র "cat" শব্দ যুক্ত লাইনগুলো প্রদর্শন করবে।বহু কমান্ড একসাথে ব্যবহার: Sed ব্যবহার করে আপনি একাধিক কমান্ড একসাথে প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, আপনি প্রথমে একটি শব্দ প্রতিস্থাপন করতে পারেন, তারপর একটি লাইন মুছে ফেলতে পারেন:
কমান্ড উদাহরণ:
sed -e 's/cat/dog/g' -e '2d' file.txtএখানে
-eঅপশনটি একাধিক কমান্ড ব্যবহার করতে সহায়তা করে। প্রথমে "cat" শব্দটি "dog"-এ পরিবর্তন করবে, তারপর দ্বিতীয় লাইনটি মুছে ফেলবে।রেগুলার এক্সপ্রেশন (Regular Expressions): Sed পূর্ণরূপে রেগুলার এক্সপ্রেশন সমর্থন করে, যা আপনাকে খুবই শক্তিশালী টেক্সট খোঁজা ও প্রতিস্থাপন করতে সাহায্য করে। আপনি বিশেষ প্যাটার্ন এবং শর্ত ব্যবহার করে complex টেক্সট পরিবর্তন করতে পারেন।
কমান্ড উদাহরণ:
sed 's/\([0-9]\{3\}\)/[\1]/g' file.txtএখানে, এটি তিনটি ডিজিটের পর একেকটি ব্র্যাকেট যোগ করবে।
পাইপলাইন ব্যবহার: Sed কে পাইপলাইন দিয়ে অন্যান্য কমান্ডের সাথে ব্যবহার করা যায়। উদাহরণস্বরূপ, আপনি
grepএর মাধ্যমে কোনো প্যাটার্ন খুঁজে, তারপর সেই প্যাটার্নগুলো Sed দিয়ে পরিবর্তন করতে পারেন:কমান্ড উদাহরণ:
cat file.txt | grep 'cat' | sed 's/cat/dog/g'এখানে, প্রথমে
file.txtথেকে "cat" শব্দগুলো খুঁজে বের করা হবে এবং তারপর Sed দিয়ে সেগুলো "dog"-এ প্রতিস্থাপন করা হবে।
Sed এর অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্য
In-place পরিবর্তন: Sed কে ইন-প্লেস ফাইলে পরিবর্তন করতে বলা যেতে পারে, যাতে আপনি ফাইলটি পরিবর্তন করার পরে নতুন ফাইল তৈরি না হয়। এটি
-iঅপশন দিয়ে করা হয়:sed -i 's/cat/dog/g' file.txt- চিন্তারযোগ্যতার জন্য: Sed কোডে অল্প সময়ে অনেক পরিবর্তন করা যেতে পারে। এটি স্ক্রিপ্টিংয়ের জন্য একটি শক্তিশালী টুল হিসেবে ব্যবহৃত হয়, যা অনেক সময় এবং পরিশ্রম বাঁচায়।
সারাংশ
Sed একটি অত্যন্ত শক্তিশালী টুল যা টেক্সট ফাইলের মধ্যে পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি স্ট্রিম এডিটিংয়ের জন্য ডিজাইন করা হয়েছে এবং অটোমেটেড স্ক্রিপ্টিং প্রক্রিয়ায় খুবই কার্যকর। এর মূল সুবিধা হলো পাইপলাইন সাপোর্ট, দ্রুত কার্যক্ষমতা এবং সহজ ব্যবহারের জন্য প্রয়োজনীয় কমান্ডগুলির সহজলভ্যতা।
Sed (Stream Editor) হলো একটি কমান্ড-লাইন টুল যা টেক্সট ফাইল বা স্ট্রিমের মধ্যে পরিবর্তন করতে ব্যবহৃত হয়। এটি Unix এবং Linux সিস্টেমে বিশেষভাবে জনপ্রিয় এবং মূলত টেক্সট ম্যানিপুলেশন বা ফাইল এডিটিংয়ের জন্য ব্যবহৃত হয়। Sed এর সাহায্যে আপনি টেক্সট ফাইলের মধ্যে একটি নির্দিষ্ট প্যাটার্ন খুঁজে সেটি পরিবর্তন, মুছে ফেলা বা যোগ করতে পারেন। এটি একটি "stream editor" কারণ এটি ইনপুট ডেটাকে স্ট্রিম হিসেবে গ্রহণ করে এবং সরাসরি পরিবর্তন করে ফাইলের মধ্যে বা আউটপুটে প্রেরণ করে।
Sed এর ইতিহাস
Sed এর জন্ম হয় 1970-এর দশকে Unix অপারেটিং সিস্টেমের বিকাশের সময়। এর মূল উদ্দেশ্য ছিল টেক্সট ফাইলের মধ্যে দ্রুত এবং অটোমেটিক পরিবর্তন আনা, বিশেষ করে যখন বড় আকারের ফাইল বা ডেটার সাথে কাজ করতে হত। Sed প্রথমবারের মতো 1974 সালে Unix এর সংস্করণ 7-এ অন্তর্ভুক্ত করা হয়েছিল, এবং এটি ছিল প্রথম টুল যা ব্যবহারকারীদের কমান্ড লাইন থেকে অটোমেটিক টেক্সট পরিবর্তন করার সুযোগ দেয়। এর রচনা করেন Lee E. McMahon, যিনি AT&T Bell Labs-এ কাজ করতেন।
Sed তৈরি হওয়ার আগে, ব্যবহারকারীরা শুধুমাত্র ইন্টারঅ্যাকটিভভাবে টেক্সট এডিটর ব্যবহার করতেন যেমন vi বা ed, যা একে একে ফাইলের মধ্যে পরিবর্তন করতে সাহায্য করত। কিন্তু Sed এর উদ্ভাবন এই সমস্যার সমাধান দেয়, কারণ এটি স্ক্রিপ্টিং এবং অটোমেশন প্রক্রিয়ার জন্য ব্যবহৃত হতে শুরু করে।
Sed এর প্রথম সংস্করণ ছিল খুবই মৌলিক এবং শুধুমাত্র কিছু সাধারণ কমান্ড সাপোর্ট করত, তবে সময়ের সাথে সাথে এর ক্ষমতা বেড়েছে এবং বিভিন্ন নতুন ফিচার যুক্ত করা হয়েছে। বর্তমানে Sed একটি অত্যন্ত শক্তিশালী এবং বহুল ব্যবহৃত টুল, যা শুধু টেক্সট ফাইল পরিবর্তনেই নয়, পাইপলাইন এবং স্ক্রিপ্টিংয়ের মধ্যে বিভিন্ন ধরণের কাজের জন্য ব্যবহৃত হয়।
Sed এর উন্নয়ন
Sed এর প্রাথমিক সংস্করণটি খুবই সাদামাটা ছিল, কিন্তু এর পরবর্তী সংস্করণগুলিতে আরো উন্নত বৈশিষ্ট্য এবং অপশন যুক্ত করা হয়। উদাহরণস্বরূপ:
- Sed 2.0 (1980-এর দশক): এটি প্রথমবারের মতো সিস্টেমে নতুন প্যাটার্ন ম্যাচিং পদ্ধতি এবং রেগুলার এক্সপ্রেশন সমর্থন শুরু করে।
- Sed 3.0 (1983): এটি নতুন ফিচার হিসেবে
-iঅপশন যোগ করে, যা ইন-প্লেস পরিবর্তন করতে সহায়তা করে। - Sed 4.0 (2000): এর মধ্যে নতুন বৈশিষ্ট্য হিসেবে মাল্টি-লাইন পরিবর্তন এবং অন্যান্য স্ক্রিপ্টিং সমর্থন অন্তর্ভুক্ত হয়।
Sed আজকাল টেক্সট ম্যানিপুলেশনের একটি অপরিহার্য টুল হিসেবে গণ্য হয়, যা স্ক্রিপ্ট লেখার জন্য বিভিন্ন ধরনের অপশন, লুপ, প্যাটার্ন খোঁজা, এবং আরও অনেক ধরনের কার্য সম্পাদন করতে সক্ষম।
Sed (Stream Editor) একটি অত্যন্ত শক্তিশালী এবং বহুল ব্যবহৃত টুল যা বিভিন্ন প্রকারের টেক্সট ম্যানিপুলেশন কাজের জন্য ব্যবহৃত হয়। এটি বিশেষভাবে Unix এবং Linux সিস্টেমে জনপ্রিয়, এবং স্ক্রিপ্টিং, অটোমেশন এবং সিস্টেম অ্যাডমিনিস্ট্রেশন কার্যক্রমে ব্যাপকভাবে ব্যবহৃত হয়। Sed এর কিছু প্রধান ব্যবহার ক্ষেত্র নিম্নরূপ:
1. টেক্সট ফাইলের পরিবর্তন
Sed সবচেয়ে বেশি ব্যবহৃত হয় টেক্সট ফাইলের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে তা পরিবর্তন করার জন্য। উদাহরণস্বরূপ, আপনি যদি একটি ফাইলে কোনো বিশেষ শব্দ খুঁজে সেটি প্রতিস্থাপন করতে চান, তাহলে Sed ব্যবহার করা হয়।
কমান্ড উদাহরণ:
sed 's/old_word/new_word/g' file.txtএটি file.txt ফাইলে সব "old_word" শব্দকে "new_word"-এ প্রতিস্থাপন করবে।
2. ফাইল থেকে নির্দিষ্ট লাইন মুছে ফেলা
Sed দিয়ে আপনি নির্দিষ্ট লাইন বা লাইন রেঞ্জ মুছে ফেলতে পারেন। এটি সাধারণত লগ ফাইল বা আউটপুট ফাইল থেকে অপ্রয়োজনীয় লাইন মুছতে ব্যবহৃত হয়।
কমান্ড উদাহরণ:
sed '3d' file.txtএটি file.txt থেকে তৃতীয় লাইনটি মুছে ফেলবে।
3. নতুন লাইন যোগ করা
Sed দিয়ে আপনি ফাইলের নির্দিষ্ট স্থানে নতুন লাইন যোগ করতে পারেন। এটি বিশেষভাবে ডেটাবেস বা লগ ফাইলের জন্য ব্যবহৃত হতে পারে, যেখানে মাঝে মাঝে নতুন ইনফরমেশন যুক্ত করা দরকার।
কমান্ড উদাহরণ:
sed '2a This is a new line' file.txtএটি file.txt এর দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে।
4. ফাইলের মধ্যে টেক্সট একত্রিত করা
Sed এর মাধ্যমে আপনি একাধিক ফাইলের মধ্যে টেক্সট একত্রিত করতে পারেন বা ফাইলের টেক্সট কমপ্লেক্স প্যাটার্নের সাথে মেলানো সম্ভব। এটি লগ ফাইল বিশ্লেষণ বা আউটপুট ফিল্টার করার জন্য ব্যবহার করা হয়।
কমান্ড উদাহরণ:
sed -n '/error/p' logfile.txtএটি logfile.txt থেকে শুধুমাত্র "error" শব্দটি পাওয়া লাইনগুলো প্রদর্শন করবে।
5. রেগুলার এক্সপ্রেশন ব্যবহার
Sed রেগুলার এক্সপ্রেশন (Regular Expressions) সমর্থন করে, যা টেক্সট ফাইলে জটিল প্যাটার্ন খুঁজে বের করতে এবং পরিবর্তন করতে সহায়তা করে। উদাহরণস্বরূপ, আপনি যদি সমস্ত ইমেইল ঠিকানা খুঁজে সেগুলো পরিবর্তন করতে চান, তাহলে রেগুলার এক্সপ্রেশন ব্যবহার করা হয়।
কমান্ড উদাহরণ:
sed 's/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/[email protected]/g' file.txtএটি file.txt ফাইলের সমস্ত ইমেইল ঠিকানা "[email protected]" দিয়ে প্রতিস্থাপন করবে।
6. পাইপলাইন এবং স্ক্রিপ্টিং
Sed অন্যান্য কমান্ডের সাথে পাইপলাইনের মাধ্যমে ব্যবহার করা যায়। এটি স্ক্রিপ্টিংয়ের অংশ হিসেবে ব্যবহৃত হয় যেখানে একাধিক কমান্ড একসাথে কাজ করে।
কমান্ড উদাহরণ:
cat file.txt | sed 's/cat/dog/g'এটি file.txt ফাইলের "cat" শব্দগুলো "dog"-এ পরিবর্তন করবে।
7. ইন-প্লেস পরিবর্তন
Sed দিয়ে আপনি একটি ফাইলে সরাসরি পরিবর্তন করতে পারেন, যা -i অপশন দিয়ে করা যায়। এটি অনেক সময় ব্যবহার হয় যখন কোনো ফাইলের পরিবর্তন সরাসরি সেভ করতে হয়।
কমান্ড উদাহরণ:
sed -i 's/cat/dog/g' file.txtএটি file.txt ফাইলে "cat" শব্দগুলো "dog"-এ পরিবর্তন করবে এবং তা সরাসরি সেভ করবে।
8. লগ ফাইল প্রক্রিয়া
Sed সাধারণত লগ ফাইল বিশ্লেষণের জন্য ব্যবহার করা হয়। বিভিন্ন ধরণের লগ বা আউটপুট ফাইল থেকে অপ্রয়োজনীয় লাইন বা প্যাটার্ন মুছে ফেলার জন্য Sed ব্যবহৃত হয়।
কমান্ড উদাহরণ:
sed '/^$/d' logfile.txtএটি logfile.txt থেকে সমস্ত খালি লাইন মুছে ফেলবে।
9. টেক্সট ফাইলের ফরম্যাটিং
Sed ব্যবহার করে ফাইলের টেক্সট ফরম্যাটও পরিবর্তন করা যায়। যেমন, আপনি কোনো টেবিল বা ডেটা ফাইলের মধ্যে কিছু নির্দিষ্ট ফরম্যাটে পরিবর্তন আনতে পারেন।
কমান্ড উদাহরণ:
sed 's/^/ID: /' data.txtএটি data.txt ফাইলের প্রতিটি লাইনের শুরুতে "ID: " যোগ করবে।
সারাংশ
Sed একটি বহুমুখী এবং শক্তিশালী টুল, যা টেক্সট ম্যানিপুলেশন, ফাইল প্রক্রিয়াকরণ, এবং স্ক্রিপ্টিংয়ের জন্য ব্যবহৃত হয়। এর সাহায্যে আপনি খুব দ্রুত এবং সহজে টেক্সট পরিবর্তন, মুছে ফেলা, বা নতুন কিছু যোগ করতে পারেন। Sed এর ব্যবহার ক্ষেত্র অনেক বিস্তৃত, এবং এটি সিস্টেম অ্যাডমিনিস্ট্রেশন, ডেটা প্রক্রিয়াকরণ, স্ক্রিপ্টিং, এবং অটোমেটেড টাস্কের জন্য অপরিহার্য একটি টুল।
Sed (Stream Editor) সাধারণত Unix-ভিত্তিক সিস্টেম যেমন Linux এবং macOS এ প্রাক-ইনস্টলড থাকে। তবে Windows এ এটি ইনস্টল করতে কিছু অতিরিক্ত পদক্ষেপ প্রয়োজন। এখানে Linux, macOS, এবং Windows এ Sed ইনস্টলেশন এবং সেটআপের পদ্ধতি বর্ণনা করা হল।
Linux এ Sed ইনস্টলেশন এবং সেটআপ
Sed সাধারণত Linux ডিস্ট্রিবিউশনে পূর্বেই ইনস্টল করা থাকে। তবে, যদি আপনার সিস্টেমে Sed না থাকে, তবে আপনি আপনার প্যাকেজ ম্যানেজার ব্যবহার করে এটি ইনস্টল করতে পারেন। নিচে কিছু জনপ্রিয় Linux ডিস্ট্রিবিউশনের জন্য ইনস্টলেশন পদ্ধতি দেওয়া হল:
Ubuntu/Debian
Ubuntu বা Debian ভিত্তিক সিস্টেমে আপনি apt প্যাকেজ ম্যানেজার ব্যবহার করে Sed ইনস্টল করতে পারেন:
sudo apt update
sudo apt install sedCentOS/RHEL
CentOS বা RHEL ভিত্তিক সিস্টেমে আপনি yum প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন:
sudo yum install sedFedora
Fedora সিস্টেমে dnf প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন:
sudo dnf install sedArch Linux
Arch Linux ব্যবহারকারীরা pacman ব্যবহার করতে পারেন:
sudo pacman -S sedপরীক্ষা: ইনস্টলেশন সফল কিনা পরীক্ষা করতে নিচের কমান্ডটি রান করুন:
sed --versionএটি Sed এর সংস্করণ দেখাবে, যা ইনস্টলেশন নিশ্চিত করবে।
macOS এ Sed ইনস্টলেশন এবং সেটআপ
macOS এর সাথে Sed পূর্বেই ইনস্টল করা থাকে। তবে যদি আপনি সর্বশেষ সংস্করণটি ইনস্টল করতে চান বা যদি কোনো কারণে Sed ইনস্টল না থাকে, তবে আপনি Homebrew ব্যবহার করে এটি ইনস্টল করতে পারেন।
Homebrew দিয়ে Sed ইনস্টলেশন:
Homebrew ইনস্টল করুন (যদি এটি পূর্বে ইনস্টল না করা থাকে):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Sed ইনস্টল করুন:
brew install gnu-sedএখানে
gnu-sedইনস্টল করা হচ্ছে, কারণ macOS এ প্রাক-ইনস্টলড Sed কমান্ডের কিছু ফিচার GNU Sed এর তুলনায় আলাদা হতে পারে।
পরীক্ষা: ইনস্টলেশন পরীক্ষা করতে:
sed --versionএটি GNU Sed এর সংস্করণ দেখাবে, যা Homebrew দিয়ে ইনস্টল করা হয়েছে।
Windows এ Sed ইনস্টলেশন এবং সেটআপ
Windows-এ Sed ব্যবহার করার জন্য কিছু অতিরিক্ত পদক্ষেপ প্রয়োজন, কারণ এটি নেটিভভাবে Windows এ ইনস্টল থাকে না। তবে, Windows-এ Sed ব্যবহার করার জন্য কয়েকটি পদ্ধতি রয়েছে:
1. Windows Subsystem for Linux (WSL) ব্যবহার করে
Windows 10 বা তার পরবর্তী সংস্করণে আপনি Windows Subsystem for Linux (WSL) ব্যবহার করে Sed ইনস্টল করতে পারেন। এটি আপনাকে Linux পরিবেশের মধ্যে Sed ব্যবহার করতে সাহায্য করবে।
WSL ইনস্টল করুন:
PowerShell (Administrator হিসেবে) ওপেন করুন এবং WSL ইনস্টল করুন:
wsl --install- ইনস্টলেশনের পরে, আপনার পছন্দের Linux ডিস্ট্রিবিউশন নির্বাচন করুন (Ubuntu সাধারণত বেছে নেওয়া হয়)।
Sed ইনস্টল করুন:
WSL এর মাধ্যমে Ubuntu বা অন্যান্য ডিস্ট্রিবিউশনে Sed ইনস্টল করতে পারেন:sudo apt update sudo apt install sed
2. Git Bash ব্যবহার করে
Windows এ Git Bash ইনস্টল করলে আপনি Sed ব্যবহার করতে পারবেন, কারণ Git Bash একটি Unix-like পরিবেশ প্রদান করে যা Sed এর মতো কমান্ডগুলোর সমর্থন করে।
Git Bash ইনস্টল করুন:
- Git for Windows থেকে Git Bash ডাউনলোড করুন এবং ইনস্টল করুন।
- ইনস্টলেশন শেষে, Git Bash ওপেন করুন এবং Sed ব্যবহার করতে পারেন।
Sed টেস্ট করুন:
sed --version3. Cygwin ব্যবহার করে
Cygwin হল একটি সফটওয়্যার যা Windows সিস্টেমে Unix-like পরিবেশ প্রদান করে। আপনি Cygwin ব্যবহার করে Sed ইনস্টল করতে পারেন।
Cygwin ইনস্টলেশন:
- Cygwin থেকে ইনস্টলার ডাউনলোড করুন এবং চালু করুন।
- ইনস্টলেশনের সময়
sedপ্যাকেজ নির্বাচন করুন। - ইনস্টলেশন শেষ হলে, Cygwin এর মাধ্যমে Sed ব্যবহার করতে পারবেন।
সারাংশ
- Linux: সাধারণত Sed প্রাক-ইনস্টল থাকে, তবে প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করা যায়।
- macOS: Sed পূর্বেই ইনস্টল থাকে, তবে Homebrew ব্যবহার করে সর্বশেষ সংস্করণ ইনস্টল করা যায়।
- Windows: Windows এ Sed ব্যবহার করতে WSL, Git Bash, অথবা Cygwin ব্যবহার করা যেতে পারে।
Sed (Stream Editor) হল একটি কমান্ড-লাইন টুল যা টেক্সট ফাইলের মধ্যে পরিবর্তন করতে ব্যবহৃত হয়। এটি মূলত "stream editor" হিসেবে কাজ করে, অর্থাৎ এটি ইনপুট ডেটাকে স্ট্রিম হিসেবে গ্রহণ করে এবং তা সরাসরি পরিবর্তন করে ফাইল বা আউটপুটে প্রেরণ করে। Sed কে সাধারণত স্ক্রিপ্টিং এবং অটোমেশন প্রক্রিয়ায় টেক্সট ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। এটি মূলত একটি non-interactive টুল, যার মানে হলো, আপনি যেভাবে কমান্ড প্রদান করবেন, সেই অনুযায়ী এটি কাজ করবে এবং কোনো ব্যবহারকারী ইন্টারঅ্যাকশন ছাড়াই কাজটি করবে।
Sed এর মৌলিক ধারণা
Sed এর মূল কাজ হলো টেক্সট ফাইল বা স্ট্রিমের মধ্যে নির্দিষ্ট পরিবর্তন করা। এটি search, replace, insert, এবং delete অপারেশনগুলো করতে সক্ষম। আপনি ফাইলের একটি নির্দিষ্ট প্যাটার্ন খুঁজে সেটি মুছে ফেলতে বা পরিবর্তন করতে পারেন, অথবা নতুন কিছু যোগ করতে পারেন।
Sed এর মধ্যে সবচেয়ে সাধারণ কাজগুলোর মধ্যে রয়েছে:
- টেক্সট পরিবর্তন (Search and Replace)
- লাইনের মুছে ফেলা (Delete lines)
- নতুন লাইন যোগ করা (Add new lines)
- টেক্সট ফরম্যাটিং (Text formatting)
- রেগুলার এক্সপ্রেশন (Regular Expressions)
Sed Syntax (সিনট্যাক্স)
Sed এর সাধারণ সিনট্যাক্স হলো:
sed [options] 'command' input-fileএখানে:
- [options]: Sed এর বিভিন্ন অপশন (যেমন
-iইন-প্লেস পরিবর্তনের জন্য) - 'command': Sed এর দেওয়া কমান্ড (যেমন সারে, ডিলিট, ইনসার্ট)
- input-file: যে ফাইল বা স্ট্রিমের সাথে Sed কাজ করবে
Sed সাধারণত এক বা একাধিক কমান্ড গ্রহণ করে। প্রতিটি কমান্ড একটি নির্দিষ্ট কাজ সম্পাদন করে।
Sed এর মৌলিক কমান্ডসমূহ
Search and Replace (সার্চ এবং রিপ্লেস)
Sed ব্যবহার করে আপনি কোনো টেক্সট প্যাটার্ন খুঁজে তাকে প্রতিস্থাপন করতে পারেন। সবচেয়ে সাধারণ কমান্ড হলোs/pattern/replacement/।সিনট্যাক্স:
sed 's/old_text/new_text/' file.txtএখানে:
s: সার্চ এবং রিপ্লেস অপারেশন নির্দেশ করে।old_text: খুঁজে বের করা হবে এমন টেক্সট।new_text: পুরানো টেক্সটের জায়গায় প্রতিস্থাপন হবে।file.txt: যেখানে টেক্সট পরিবর্তন হবে।
উদাহরণ:
sed 's/cat/dog/' file.txtএই কমান্ডটি
file.txtফাইলে প্রথম "cat" শব্দটি "dog"-এ প্রতিস্থাপন করবে।Global Replacement (গ্লোবাল রিপ্লেসমেন্ট)
যদি আপনি একটি লাইনে সমস্ত occurrences পরিবর্তন করতে চান, তাহলেgফ্ল্যাগ ব্যবহার করতে হয়।সিনট্যাক্স:
sed 's/old_text/new_text/g' file.txtউদাহরণ:
sed 's/cat/dog/g' file.txtএই কমান্ডটি
file.txtফাইলে সমস্ত "cat" শব্দকে "dog"-এ পরিবর্তন করবে।Delete Line (লাইন মুছে ফেলা)
Sed দিয়ে আপনি নির্দিষ্ট লাইন মুছে ফেলতে পারেন। এটিdকমান্ডের মাধ্যমে করা হয়।সিনট্যাক্স:
sed 'line_numberd' file.txtউদাহরণ:
sed '3d' file.txtএই কমান্ডটি
file.txtথেকে তৃতীয় লাইনটি মুছে ফেলবে।Add Line (লাইন যোগ করা)
Sed দিয়ে আপনি একটি নির্দিষ্ট লাইনের পরে অথবা আগে নতুন লাইন যোগ করতে পারেন। এটিa(add) অথবাi(insert) কমান্ড দিয়ে করা হয়।সিনট্যাক্স:
sed 'line_numbera new_line' file.txtঅথবা
sed 'line_numberi new_line' file.txtউদাহরণ:
sed '2a This is a new line' file.txtএই কমান্ডটি
file.txtএর দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে।Print Line (লাইন প্রিন্ট করা)
আপনি কিছু নির্দিষ্ট লাইন প্রিন্ট করতেpকমান্ড ব্যবহার করতে পারেন।সিনট্যাক্স:
sed -n '/pattern/p' file.txtউদাহরণ:
sed -n '/dog/p' file.txtএটি
file.txtথেকে "dog" শব্দযুক্ত লাইনগুলো প্রদর্শন করবে।In-place Editing (ইন-প্লেস এডিটিং)
আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে-iঅপশন ব্যবহার করতে পারেন। এটি কমান্ডটি ফাইলের পরিবর্তন করবে এবং ফাইলের মধ্যে সেভ করবে।সিনট্যাক্স:
sed -i 's/old_text/new_text/g' file.txtউদাহরণ:
sed -i 's/cat/dog/g' file.txtএটি
file.txtফাইলে সমস্ত "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং তা সরাসরি সেভ করবে।
Sed এর কিছু বিশেষ অপশন
-e: একাধিক Sed কমান্ড রান করতে
-eঅপশন ব্যবহার করা হয়।উদাহরণ:
sed -e 's/cat/dog/' -e 's/dog/bird/' file.txt-n: এটি কোনো আউটপুট প্রদর্শন না করে শুধুমাত্র প্যাটার্ন ম্যাচ হলে আউটপুট প্রদর্শন করে।
উদাহরণ:
sed -n 's/cat/dog/p' file.txt
সারাংশ
Sed হলো একটি শক্তিশালী টুল যা টেক্সট ফাইলের মধ্যে পরিবর্তন করার জন্য ব্যবহৃত হয়। এর মৌলিক কমান্ডগুলোর মধ্যে রয়েছে search, replace, delete, insert, এবং print। Sed সাধারণত স্ক্রিপ্টিং, অটোমেশন এবং সিস্টেম অ্যাডমিনিস্ট্রেশনে ব্যবহৃত হয়, যেখানে আপনাকে দ্রুত এবং কার্যকরভাবে টেক্সট পরিবর্তন করতে হয়।
Read more