Sed (Stream Editor) ব্যবহার করে আপনি সহজেই টেক্সট ফাইলে নতুন লাইন যোগ করতে পারেন, কোনো লাইন বা টেক্সট পরিবর্তন করতে পারেন, বা লাইনগুলির মধ্যে নতুন কিছু যুক্ত করতে পারেন। Insert, Append, এবং Change হল Sed এর তিনটি গুরুত্বপূর্ণ কমান্ড যা টেক্সট ফাইলে নির্দিষ্ট জায়গায় লাইন যোগ করতে, লাইন পরিবর্তন করতে বা পরিবর্তন করতে ব্যবহৃত হয়।
1. Insert (ইনসার্ট)
Insert কমান্ড (i) ব্যবহার করে আপনি Pattern Space তে থাকা কোনো নির্দিষ্ট লাইনের আগে নতুন একটি লাইন যোগ করতে পারেন। এটি মূলত একটি নির্দিষ্ট লাইনের আগে টেক্সট যোগ করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
sed 'line_numberi new_line' file.txt- line_number: যে লাইনের আগে নতুন লাইন যোগ করতে চান।
- new_line: নতুন যে লাইনটি যোগ করতে চান।
উদাহরণ:
sed '2i This is a new line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের আগে "This is a new line" যোগ করবে।
2. Append (অ্যাপেন্ড)
Append কমান্ড (a) ব্যবহার করে আপনি Pattern Space তে থাকা কোনো নির্দিষ্ট লাইনের পরে নতুন একটি লাইন যোগ করতে পারেন। এটি মূলত একটি নির্দিষ্ট লাইনের পরে নতুন লাইন যোগ করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
sed 'line_numbera new_line' file.txt- line_number: যে লাইনের পরে নতুন লাইন যোগ করতে চান।
- new_line: নতুন যে লাইনটি যোগ করতে চান।
উদাহরণ:
sed '2a This is another new line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের পরে "This is another new line" যোগ করবে।
3. Change (চেঞ্জ)
Change কমান্ড (c) ব্যবহার করে আপনি Pattern Space তে থাকা কোনো নির্দিষ্ট লাইন সম্পূর্ণভাবে পরিবর্তন করতে পারেন। এই কমান্ডটি একটি লাইন পরিবর্তন করতে ব্যবহৃত হয়, যার মাধ্যমে পুরো লাইনের নতুন কন্টেন্ট পরিবর্তন করা সম্ভব।
সিনট্যাক্স:
sed 'line_numberc new_line' file.txt- line_number: যে লাইনের কন্টেন্ট পরিবর্তন করতে চান।
- new_line: নতুন যে লাইনটি রাখতে চান।
উদাহরণ:
sed '2c This is the changed line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের পুরনো কন্টেন্ট পরিবর্তন করে "This is the changed line" রাখবে।
Multiple Insert, Append, and Change (একাধিক ইনসার্ট, অ্যাপেন্ড, এবং চেঞ্জ)
Sed এ একাধিক Insert, Append, এবং Change কমান্ড একসাথে ব্যবহার করা যেতে পারে, যাতে আপনি একাধিক পরিবর্তন একযোগে করতে পারেন।
Multiple Insert Example:
sed -e '2i First inserted line' -e '4i Second inserted line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের আগে "First inserted line" এবং চতুর্থ লাইনের আগে "Second inserted line" যোগ করবে।
Multiple Append Example:
sed -e '2a First appended line' -e '4a Second appended line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের পরে "First appended line" এবং চতুর্থ লাইনের পরে "Second appended line" যোগ করবে।
Multiple Change Example:
sed -e '2c First changed line' -e '4c Second changed line' file.txtব্যাখ্যা: এটি file.txt ফাইলের দ্বিতীয় লাইনের কন্টেন্ট "First changed line" দিয়ে এবং চতুর্থ লাইনের কন্টেন্ট "Second changed line" দিয়ে পরিবর্তন করবে।
সারাংশ
Sed এ Insert, Append, এবং Change কমান্ডগুলি আপনাকে ফাইলে নতুন লাইন যোগ করতে, পুরনো লাইন পরিবর্তন করতে, বা নির্দিষ্ট স্থানে নতুন লাইন ইনসার্ট করতে সাহায্য করে। এগুলি খুবই শক্তিশালী এবং কার্যকরী টেক্সট ম্যানিপুলেশন টুল, যা আপনাকে বিভিন্ন ধরণের কাজের জন্য টেক্সট ফাইল পরিবর্তন করার সুযোগ দেয়।
Sed এর i (insert) কমান্ড ব্যবহার করে আপনি নির্দিষ্ট লাইনের আগে নতুন লাইন যোগ করতে পারেন। এটি একটি খুবই কার্যকরী কমান্ড যখন আপনি ফাইলের মধ্যে কোন নির্দিষ্ট স্থানে নতুন কিছু ইনসার্ট করতে চান, যেমন কোনো নতুন তথ্য বা টেক্সট।
i কমান্ডের সিনট্যাক্স
sed 'line_number i new_line' input-fileএখানে:
- line_number: যেখানে আপনি নতুন লাইন যোগ করতে চান।
- i: ইনসার্ট অপারেটর, যা নতুন লাইন যোগ করার জন্য ব্যবহৃত হয়।
- new_line: নতুন লাইন যেটি আপনি যোগ করতে চান।
- input-file: সেই ফাইল যেখানে পরিবর্তন করতে চান।
i কমান্ডের ব্যবহার উদাহরণ
1. নির্দিষ্ট লাইনে নতুন লাইন যোগ করা
ধরা যাক, আপনি একটি ফাইলে দ্বিতীয় লাইনের আগে "This is a new line" যোগ করতে চান। আপনি এই কমান্ড ব্যবহার করতে পারেন:
sed '2i This is a new line' file.txtএটি file.txt ফাইলে দ্বিতীয় লাইনের আগে "This is a new line" যোগ করবে।
2. একাধিক লাইন ইনসার্ট করা
আপনি একাধিক লাইনও ইনসার্ট করতে পারেন। এর জন্য, Sed কমান্ডের মধ্যে একাধিক লাইন ব্যবহার করতে হবে। সেক্ষেত্রে, আপনাকে প্রতিটি নতুন লাইনের পরে একটি \ ব্যবহার করতে হবে।
sed '3i This is the first new line
This is the second new line' file.txtএটি file.txt ফাইলে তৃতীয় লাইনের আগে দুটি নতুন লাইন যোগ করবে। প্রথমে "This is the first new line" এবং পরেরটি "This is the second new line"।
3. ফাইলের শুরুতে নতুন লাইন যোগ করা
যদি আপনি ফাইলের শুরুতে (প্রথম লাইনে) নতুন কিছু যোগ করতে চান, তাহলে 1i ব্যবহার করবেন।
sed '1i This is the first line' file.txtএটি file.txt এর প্রথম লাইনে "This is the first line" যোগ করবে।
4. ইনপুট ফাইল পরিবর্তন করা (In-place modification)
আপনি যদি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে চান, তবে -i অপশন ব্যবহার করতে হবে। এটি ফাইলের মধ্যে পরিবর্তন করবে এবং নতুন ফাইল তৈরি হবে না।
sed -i '2i This is a new line' file.txtএটি file.txt ফাইলে দ্বিতীয় লাইনের আগে "This is a new line" যোগ করবে এবং পরিবর্তনটি সরাসরি সেভ করবে।
সারাংশ
Sed এর i (insert) কমান্ড আপনাকে নির্দিষ্ট লাইনের আগে নতুন লাইন যোগ করতে সাহায্য করে। এটি খুবই কার্যকরী যখন আপনি কোন নির্দিষ্ট লাইন বা জায়গায় তথ্য যোগ করতে চান। আপনি একাধিক লাইনও যোগ করতে পারেন এবং ইনপুট ফাইলে সরাসরি পরিবর্তন করার জন্য -i অপশন ব্যবহার করতে পারেন।
Sed (Stream Editor) এ a (append) কমান্ড ব্যবহার করে আপনি একটি নির্দিষ্ট স্থানে নতুন লাইন যোগ করতে পারেন। এটি সাধারণত pattern space এর পরে নতুন লাইন যোগ করার জন্য ব্যবহৃত হয়। a কমান্ডের মাধ্যমে নতুন লাইনটি pattern space এর পরবর্তী স্থানে যোগ হয়, যা আউটপুটে প্রদর্শিত হয়।
a (append) কমান্ড এর সিনট্যাক্স
sed 'line_numbera new_line' file.txtএখানে:
line_number: যে লাইনের পরে নতুন লাইন যোগ করতে চান, সেই লাইনের সংখ্যা।new_line: নতুন লাইন যা আপনি যোগ করতে চান।file.txt: ফাইলটির নাম যেখানে আপনি পরিবর্তন করতে চান।
a কমান্ডের ব্যবহার উদাহরণ
উদাহরণ 1: একটি নির্দিষ্ট লাইনের পরে নতুন লাইন যোগ করা
ধরা যাক, আপনি file.txt ফাইলে দ্বিতীয় লাইনের পরে "This is a new line" যোগ করতে চান:
sed '2a This is a new line' file.txtএটি file.txt এর দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে। আউটপুট হবে:
Line 1
Line 2
This is a new line
Line 3
Line 4উদাহরণ 2: ফাইলের প্রথম লাইনের পরে নতুন লাইন যোগ করা
ধরা যাক, আপনি file.txt এর প্রথম লাইনের পরে একটি নতুন লাইন যোগ করতে চান:
sed '1a This is the first new line' file.txtএটি file.txt এর প্রথম লাইনের পরে "This is the first new line" যোগ করবে। আউটপুট হবে:
Line 1
This is the first new line
Line 2
Line 3উদাহরণ 3: সমস্ত লাইনের পরে নতুন লাইন যোগ করা
যদি আপনি ফাইলের প্রতিটি লাইনের পরে নতুন লাইন যোগ করতে চান, তবে আপনি কমান্ডটি এইভাবে ব্যবহার করতে পারেন:
sed 's/$/ - New line/' file.txtএটি ফাইলের প্রতিটি লাইনের শেষে " - New line" যোগ করবে। উদাহরণস্বরূপ, যদি file.txt এ থাকে:
Line 1
Line 2
Line 3তাহলে আউটপুট হবে:
Line 1 - New line
Line 2 - New line
Line 3 - New lineউদাহরণ 4: ফাইলের শেষে নতুন লাইন যোগ করা
যদি আপনি ফাইলের শেষের পরে একটি নতুন লাইন যোগ করতে চান, তাহলে a কমান্ড ব্যবহার করা যেতে পারে। নিচে একটি উদাহরণ দেওয়া হল:
sed -e '$a This is the last new line' file.txtএটি file.txt এর শেষের পরে "This is the last new line" যোগ করবে।
a কমান্ডের আরো কিছু বৈশিষ্ট্য
লাইনে নতুন লাইন যোগ করা:
aকমান্ড ব্যবহারের সময়, নতুন লাইন যোগ করার জন্য নতুন লাইনটি সাধারণত সোজা টাইপ করতে হবে। উদাহরণস্বরূপ:sed '2a\ This is a new line' file.txtইন-প্লেস পরিবর্তন (In-place editing): যদি আপনি ফাইলটি সরাসরি পরিবর্তন করতে চান, তাহলে
-iঅপশন ব্যবহার করতে পারেন:sed -i '2a This is a new line' file.txt
এটি ফাইলের দ্বিতীয় লাইনের পরে নতুন লাইন যোগ করবে এবং তা ফাইলে সরাসরি সেভ করবে।
সারাংশ
a (append) কমান্ড Sed এ একটি শক্তিশালী টুল, যা আপনাকে নির্দিষ্ট লাইন বা লাইনের পরে নতুন লাইন যোগ করতে সাহায্য করে। এটি টেক্সট ফাইলের গঠন পরিবর্তন করার জন্য খুবই কার্যকর, বিশেষ করে যখন আপনি ফাইলের বিভিন্ন অংশে নতুন তথ্য যোগ করতে চান।
Sed (Stream Editor) ব্যবহার করে c (change) কমান্ডটি একটি সম্পূর্ণ লাইন পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট লাইন বা প্যাটার্নের সাথে মিল পাওয়া লাইনগুলির সমস্ত টেক্সটকে নতুন টেক্সট দিয়ে প্রতিস্থাপন করে। এর মাধ্যমে আপনি কোনো লাইন সম্পূর্ণভাবে মুছে ফেলে নতুন লাইন বসাতে পারেন।
c কমান্ডের সিনট্যাক্স:
sed 'line_number c\new_text' file.txtএখানে:
line_number: লাইন নম্বরটি যেটি আপনি পরিবর্তন করতে চান।c\: এটি পরিবর্তনের নির্দেশ দেয়।cকমান্ডের পরে একটি নতুন লাইন দিয়ে আপনি যে টেক্সট রাখতে চান তা লিখবেন।new_text: এটি নতুন টেক্সট যা আপনি লাইনটিতে রাখতে চান।file.txt: যে ফাইলটির মধ্যে পরিবর্তন করতে চান।
c কমান্ডের উদাহরণ
1. একটি নির্দিষ্ট লাইন সম্পূর্ণভাবে পরিবর্তন করা
ধরা যাক, আপনি একটি ফাইলের দ্বিতীয় লাইনটি সম্পূর্ণভাবে পরিবর্তন করতে চান এবং নতুন টেক্সট হিসেবে "This is the new line" বসাতে চান। আপনি এই কমান্ডটি ব্যবহার করতে পারেন:
sed '2c\This is the new line' file.txtএটি:
2: দ্বিতীয় লাইনটিকে লক্ষ্য করবে।c\: দ্বিতীয় লাইনটির টেক্সট সম্পূর্ণভাবে পরিবর্তন করবে।This is the new line: নতুন লাইন হবে।
2. প্যাটার্নের সাথে মিল পাওয়া লাইন পরিবর্তন করা
যদি আপনি "dog" শব্দটি যেসব লাইন থেকে খুঁজে পেয়ে সেগুলোর পুরো টেক্সটকে পরিবর্তন করতে চান, তাহলে:
sed '/dog/c\This line has been changed' file.txtএটি:
/dog/: "dog" শব্দযুক্ত সমস্ত লাইন খুঁজে পাবে।c\This line has been changed: যেসব লাইন "dog" শব্দের সাথে মিলে যাবে, সেগুলোর পুরো টেক্সট "This line has been changed"-এ পরিবর্তিত হবে।
3. একাধিক লাইন পরিবর্তন করা
একাধিক লাইন পরিবর্তন করতে, আপনি একাধিক c\ কমান্ড ব্যবহার করতে পারেন:
sed '2c\This is the new second line' -e '3c\This is the new third line' file.txtএটি:
2c\This is the new second line: দ্বিতীয় লাইনটিকে "This is the new second line" দিয়ে প্রতিস্থাপন করবে।3c\This is the new third line: তৃতীয় লাইনটিকে "This is the new third line" দিয়ে প্রতিস্থাপন করবে।
4. c কমান্ডের সাথে একাধিক লাইন যুক্ত করা
যদি আপনি একাধিক লাইন পরিবর্তন করতে চান, তাহলে Sed এর c কমান্ডের পরে নতুন লাইন এড করতে পারেন:
sed '2c\
This is the first line of the change\
This is the second line of the change' file.txtএটি:
2c\: দ্বিতীয় লাইনটিকে পরিবর্তন করবে।- নতুন দুটি লাইন যোগ করবে: "This is the first line of the change" এবং "This is the second line of the change"।
c কমান্ডের কিছু গুরুত্বপূর্ণ نکতা
cকমান্ডটি সম্পূর্ণ লাইনকে নতুন টেক্সট দিয়ে প্রতিস্থাপন করে, অর্থাৎ আপনি পুরনো লাইনটির অংশ পরিবর্তন করতে পারবেন না, আপনি পুরো লাইনটিই নতুনভাবে লিখবেন।c\কমান্ডের পরে আপনাকে নতুন লাইন (newline) ব্যবহার করে টেক্সটটি ঠিকমতো লিখতে হবে, বিশেষ করে যদি এটি একটি multiline টেক্সট হয়।
Conclusion
cকমান্ড Sed-এ একটি শক্তিশালী পদ্ধতি যা টেক্সট ফাইলের মধ্যে নির্দিষ্ট লাইন বা প্যাটার্নের সাথে মিল পাওয়া লাইনকে সম্পূর্ণভাবে নতুন টেক্সট দিয়ে প্রতিস্থাপন করতে ব্যবহৃত হয়।- এটি বিশেষভাবে কার্যকর যখন আপনি ফাইলের একটি নির্দিষ্ট লাইন সম্পূর্ণভাবে পরিবর্তন করতে চান, বা একাধিক লাইন যুক্ত করতে চান।
Sed (Stream Editor) ব্যবহার করে insert, append, এবং change অপারেশনগুলি একাধিক টেক্সট ফাইলে বা ডেটাতে কার্যকরভাবে প্রয়োগ করা যেতে পারে। এই অপারেশনগুলি ব্যবহার করে আপনি ফাইলের মধ্যে নতুন লাইন যোগ করতে, পুরানো লাইনকে পরিবর্তন করতে, অথবা কোনো নির্দিষ্ট স্থানে নতুন টেক্সট ইনসার্ট বা অ্যাপেন্ড করতে পারেন।
নিচে insert, append, এবং change অপারেশনগুলির বাস্তব উদাহরণ দেওয়া হলো।
1. Insert (i) কমান্ড: একটি নতুন লাইন যোগ করা
Insert কমান্ড (i) ব্যবহার করে আপনি একটি নির্দিষ্ট লাইনের আগের স্থানে একটি নতুন লাইন যোগ করতে পারেন। এটি একটি নতুন লাইন যোগ করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
sed 'linenumberi new_text' file.txtএখানে:
- linenumber: যে লাইনের আগে নতুন লাইনটি যোগ করতে চান।
- new_text: যে নতুন টেক্সটটি যোগ করতে চান।
- file.txt: ফাইল যেখানে এই পরিবর্তনটি হবে।
উদাহরণ 1: একটি নতুন লাইন ইনসার্ট করা
ধরা যাক, আপনার একটি ফাইল আছে যেটির কনটেন্ট নিচরূপ:
ফাইল কনটেন্ট (file.txt):
apple
banana
cherryআপনি চান দ্বিতীয় লাইনের আগে একটি নতুন লাইন যোগ করতে, যা "orange" হবে।
কমান্ড:
sed '2i orange' file.txtআউটপুট:
apple
orange
banana
cherryএখানে, Sed কমান্ডটি দ্বিতীয় লাইনের আগে "orange" যোগ করেছে।
2. Append (a) কমান্ড: একটি নতুন লাইন যোগ করা
Append কমান্ড (a) ব্যবহার করে আপনি একটি নির্দিষ্ট লাইনের পরে একটি নতুন লাইন যোগ করতে পারেন। এটি নতুন টেক্সট যুক্ত করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
sed 'linenumbera new_text' file.txtএখানে:
- linenumber: যে লাইনের পরে নতুন লাইনটি যোগ করতে চান।
- new_text: যে নতুন টেক্সটটি যোগ করতে চান।
- file.txt: ফাইল যেখানে এই পরিবর্তনটি হবে।
উদাহরণ 2: একটি নতুন লাইন অ্যাপেন্ড করা
ধরা যাক, আপনার একটি ফাইল আছে যেটির কনটেন্ট নিচরূপ:
ফাইল কনটেন্ট (file.txt):
apple
banana
cherryএখন আপনি চান দ্বিতীয় লাইনের পরে একটি নতুন লাইন যোগ করতে, যা "grape" হবে।
কমান্ড:
sed '2a grape' file.txtআউটপুট:
apple
banana
grape
cherryএখানে, Sed কমান্ডটি দ্বিতীয় লাইনের পরে "grape" যোগ করেছে।
3. Change (c) কমান্ড: একটি লাইন পরিবর্তন করা
Change কমান্ড (c) ব্যবহার করে আপনি একটি নির্দিষ্ট লাইনের পুরো কন্টেন্ট পরিবর্তন করতে পারেন। এটি পুরো লাইনটি নতুন কিছু দিয়ে প্রতিস্থাপন করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
sed 'linenumberc new_text' file.txtএখানে:
- linenumber: যে লাইনের কন্টেন্ট পরিবর্তন করতে চান।
- new_text: যে নতুন টেক্সটটি সেখানে আসবে।
- file.txt: ফাইল যেখানে এই পরিবর্তনটি হবে।
উদাহরণ 3: একটি লাইন পরিবর্তন করা
ধরা যাক, আপনার একটি ফাইল আছে যেটির কনটেন্ট নিচরূপ:
ফাইল কনটেন্ট (file.txt):
apple
banana
cherryএখন আপনি চান দ্বিতীয় লাইনের কন্টেন্ট "banana" পরিবর্তন করে "fruit" দিয়ে।
কমান্ড:
sed '2c fruit' file.txtআউটপুট:
apple
fruit
cherryএখানে, Sed কমান্ডটি দ্বিতীয় লাইনের "banana" পরিবর্তন করে "fruit" দিয়ে প্রতিস্থাপন করেছে।
কীভাবে ব্যবহার করবেন i, a, c কমান্ড একসাথে
আপনি একই কমান্ডের মধ্যে একাধিক অপারেশন করতে পারেন। উদাহরণস্বরূপ, আপনি i, a, এবং c কমান্ড একসাথে ব্যবহার করে নতুন লাইন যোগ, পরিবর্তন এবং অ্যাপেন্ড করতে পারেন।
উদাহরণ 4: একাধিক অপারেশন ব্যবহার করা
ধরা যাক, আপনার ফাইলের প্রথম লাইনে "fruit" যোগ করতে চান, দ্বিতীয় লাইনে "apple" পরিবর্তন করে "orange" করতে চান, এবং চতুর্থ লাইনের পরে "grape" যোগ করতে চান।
ফাইল কনটেন্ট (file.txt):
apple
banana
cherry
dateকমান্ড:
sed '1i fruit
2c orange
4a grape' file.txtআউটপুট:
fruit
orange
cherry
date
grapeএখানে:
- 1i fruit: প্রথম লাইনের আগে "fruit" যোগ করা হয়েছে।
- 2c orange: দ্বিতীয় লাইনের "banana" পরিবর্তন করে "orange" করা হয়েছে।
- 4a grape: চতুর্থ লাইনের পরে "grape" যোগ করা হয়েছে।
সারাংশ
- Insert (
i): এটি একটি নির্দিষ্ট লাইনের আগে নতুন লাইন যোগ করতে ব্যবহৃত হয়। - Append (
a): এটি একটি নির্দিষ্ট লাইনের পরে নতুন লাইন যোগ করতে ব্যবহৃত হয়। - Change (
c): এটি একটি নির্দিষ্ট লাইনের পুরো কন্টেন্ট পরিবর্তন করতে ব্যবহৃত হয়।
এই কমান্ডগুলি ব্যবহার করে আপনি একটি ফাইলে নির্দিষ্ট স্থানে নতুন লাইন যোগ করতে, পুরানো লাইনকে পরিবর্তন করতে, অথবা নতুন কিছু ইনসার্ট বা অ্যাপেন্ড করতে পারেন। Sed এই প্রক্রিয়াগুলিকে খুব দ্রুত এবং কার্যকরীভাবে করতে সাহায্য করে।
Read more