`sed` کمانڈ کا استعمال کرتے ہوئے متعدد لائنوں کو تبدیل کرنے کا طریقہ۔

How Replace Multiple Lines Using Sed Command



بعض اوقات اسے فائل کی ایک سے زیادہ لائنوں کو کسی خاص کردار یا متن کے ساتھ تبدیل کرنے کی ضرورت ہوتی ہے۔ لینکس میں فائل کی ایک سے زیادہ لائنوں کو تبدیل کرنے کے لیے مختلف کمانڈ موجود ہیں۔ اس قسم کا کام کرنے کے لیے `sed` کمانڈ ان میں سے ایک ہے۔ `sed` کی مکمل شکل بھاپ ایڈیٹر ہے ، اور یہ بنیادی طور پر متن کو مختلف طریقوں سے پڑھنے اور تبدیل کرنے کے لیے استعمال کیا جاتا ہے۔ اس کمانڈ کو مختلف طریقوں سے فائل کی ایک سے زیادہ لائنوں کو تبدیل کرنے کے لیے کس طرح استعمال کیا جا سکتا ہے اس ٹیوٹوریل میں وضاحت کی گئی ہے۔

عام طور پر استعمال ہونے والی `sed` Cheat Sheet:

`sed` کمانڈ میں استعمال ہونے والے سب سے زیادہ استعمال ہونے والے حروف کو مندرجہ ذیل جدول میں بیان کیا گیا ہے۔







کردار مقصد۔
کو یہ مواد شامل کرنے کے لیے استعمال کیا جاتا ہے۔
ب یہ برانچنگ مواد کے لیے استعمال ہوتا ہے۔
ج یہ مواد کو تبدیل کرنے کے لیے استعمال کیا جاتا ہے۔
د یہ فائل کی ایک لائن کو حذف کرنے کے لیے استعمال ہوتا ہے۔
ڈی۔ یہ فائل کی پہلی لائن کو حذف کرنے کے لیے استعمال ہوتا ہے۔
g یہ ہولڈنگ ٹیکسٹ سے کاپی کرتا تھا۔
جی یہ ہولڈنگ ٹیکسٹ سے منسلک کرنے کے لیے استعمال ہوتا ہے۔
h اسے ہولڈنگ ٹیکسٹ میں کاپی کرنے کے لیے استعمال کیا جاتا ہے۔
ایچ یہ ہولڈنگ ٹیکسٹ میں شامل کرنے کے لیے استعمال ہوتا ہے۔
میں یہ اندراج کے لیے استعمال ہوتا ہے۔
میں یہ متبادل لائن پرنٹ کرنے کے لیے استعمال ہوتا ہے۔
n یہ اگلی لائن پر جانے کے لیے استعمال ہوتا ہے۔
ن۔ یہ اگلی ان پٹ لائن کو جوڑنے کے لیے استعمال ہوتا ہے۔
p یہ پرنٹ کرنے کے لیے استعمال ہوتا ہے۔
پی۔ یہ پہلی لائن پرنٹ کرنے کے لیے استعمال ہوتا ہے۔
کیا اسے چھوڑنے کے لیے استعمال کیا جاتا ہے۔
س اسے فوری طور پر چھوڑنے کے لیے استعمال کیا جاتا ہے۔
r یہ فائل کو پڑھنے کے لیے استعمال ہوتا ہے۔
آر۔ یہ فائل سے لائن پڑھنے کے لیے استعمال ہوتا ہے۔
s یہ متبادل کے لیے استعمال ہوتا ہے۔
t یہ متبادل کے لیے ٹیسٹ کرنے کے لیے استعمال ہوتا ہے۔
ٹی یہ بغیر کسی متبادل کے ٹیسٹ کرنے کے لیے استعمال ہوتا ہے۔
میں یہ فائل پر لکھنے کے لیے استعمال ہوتا ہے۔
IN یہ فائل میں ایک لائن لکھنے کے لیے استعمال ہوتا ہے۔
ایکس یہ پیٹرن کو تبدیل کرنے اور پکڑنے کے لیے استعمال ہوتا ہے۔
اور یہ ترجمہ کرنے کے لیے استعمال ہوتا ہے۔
کے ساتھ۔ یہ لائن صاف کرنے کے لیے استعمال ہوتا ہے۔
'=' یہ لائن نمبر پرنٹ کرنے کے لیے استعمال ہوتا ہے۔

ٹرمینل سے `sed` کمانڈ استعمال کرکے متعدد لائنوں کو تبدیل کریں:

ٹرمینل سے فائل کی ایک سے زیادہ لائنوں کو تبدیل کرنے کے لیے `sed` کمانڈ کو کس طرح استعمال کیا جا سکتا ہے اس سبق کے اس حصے میں دکھایا گیا ہے۔ نام کی فائل بنائیں۔ sed.txt مندرجہ ذیل مواد کے ساتھ اس حصے کے احکامات کی جانچ کریں۔



sed.txt



sed کی مکمل شکل سٹریم ایڈیٹر ہے۔





یہ ایک یونکس افادیت ہے جو متن کو مختلف شکل میں پڑھنے اور تبدیل کرنے کے لیے استعمال ہوتی ہے۔

یہ لی ای میکماہن نے تیار کیا تھا۔



یہ ٹیکسٹ پروسیسنگ کے لیے استعمال ہوتا ہے۔

یہ باقاعدہ اظہار کی حمایت کرتا ہے۔

مثال 1: دو لگاتار لائنوں کو تبدیل کریں۔

درج ذیل `sed` کمانڈ مسلسل دو لائنوں کو دوسری لائن سے بدل دے گی۔ یہاں ، -z آپشن متبادل متن شامل کرنے سے پہلے لگاتار لائنوں کو کالعدم ڈیٹا سے تبدیل کرنے کے لیے استعمال کیا جاتا ہے۔ حکم کے مطابق ، 3rdاور 4ویںفائل کی لکیریں متن سے بدل جائیں گی ، 'یہ ایک بہت مفید آلہ ہے' .

$کیٹsed.txt
$sed کے ساتھ۔ s/یہ لی E. McMahon نے تیار کیا تھا۔ t n یہ متن کے لیے استعمال ہوتا ہے۔
پروسیسنگ۔/یہ ایک بہت مفید ٹول ہے۔
sed.txt

کمانڈز چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

مثال 2: میچ اور عالمی پرچم کی بنیاد پر متعدد لائنوں کو تبدیل کریں۔

درج ذیل `sed` کمانڈ لفظ سے شروع ہونے والی تمام لائنوں کو بدل دے گی ، 'یہ' لفظ سے ، ' یہ لائن بدل دی گئی ہے۔ '.

$کیٹsed.txt
$sed 's/^It.*/یہ لائن بدل دی گئی ہے/g'sed.txt

کمانڈز چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ تین سطروں میں لفظ ہے ' یہ 'فائل میں لہذا ، ان لائنوں کو متبادل متن سے تبدیل کیا گیا ہے۔

مثال 3: میچ اور اگلی لائن کمانڈ کی بنیاد پر متعدد لائنوں کو تبدیل کریں۔

درج ذیل `sed` کمانڈ لفظ کی جگہ لے لے گا ، ہے 'لفظ سے' تھا 'اگلی لائن کمانڈ کے ساتھ ،' n '۔

$کیٹsed.txt
$sed '{n؛/is/{s/is/was/}}'sed.txt

کمانڈز چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ یہاں ، 'ہے' 2 میں موجود ہے۔این ڈیاور 4ویںفائل کی لائنیں ، اور ان لائنوں کو لفظ کے ذریعہ تبدیل کیا جاتا ہے۔ 'تھا' .

`sed` اسکرپٹ فائل بنا کر متعدد لائنوں کو تبدیل کریں:

پچھلی مثالوں میں ، ٹرمینل سے `sed` احکامات پر عمل درآمد کیا گیا ہے۔ لیکن یہ ایک سکرپٹ کی زبان ہے ، اور اگر اسکرپٹ میں متعدد بیانات ہیں ، تو بہتر ہے کہ اسکرپٹ کے ساتھ سیڈ فائل بنائی جائے۔ نامی ٹیکسٹ فائل بنائیں۔ students.txt مندرجہ ذیل مواد کے ساتھ جس میں `sed` اسکرپٹ لاگو کیا جائے گا۔

students.txt

آئی ڈی: 111045
نام: رابرٹ۔
شعبہ: سی ایس ای۔
بیچ: 35۔

آئی ڈی: 111876
نام: جوزف۔
شعبہ: بی بی اے
بیچ: 27۔

آئی ڈی: 111346
نام: ولیم۔
شعبہ: سی ایس ای۔
بیچ: 45۔

آئی ڈی: 111654
نام: چارلس۔
محکمہ: ای ای ای
بیچ: 41۔

آئی ڈی: 111346
نام: جان۔
شعبہ: سی ایس ای۔
بیچ: 25۔

آئی ڈی: 111746
نام: تھامس۔
شعبہ: سی ایس ای۔
بیچ: 15۔

مثال -4: `sed` اسکرپٹ فائل کا استعمال کرتے ہوئے فائل کی متعدد لائنیں تبدیل کریں۔

کے نام سے ایک سیڈ فائل بنائیں۔ تبدیل کریں سرچ پیٹرن کی بنیاد پر ایک سے زیادہ لائنوں کو تبدیل کرنے کے لیے درج ذیل مواد کے ساتھ۔ یہاں ، لفظ ' سی ایس ای 'ٹیکسٹ فائل میں تلاش کیا جائے گا ، اور اگر میچ موجود ہے ، تو وہ دوبارہ نمبر 35 اور 15 کو تلاش کرے گا۔ اگر دوسرا میچ فائل میں موجود ہے ، تو اسے 45 نمبر سے تبدیل کیا جائے گا۔

تبدیل کریں

/سی ایس ای/ {
p؛ n؛
/35۔/ {
s/35۔/چار پانچ/؛
p؛ d؛
}
/پندرہ/ {
s/پندرہ/55۔/؛
p؛ d؛
}
}

فائل کے موجودہ مواد کو چیک کرنے کے لیے درج ذیل کمانڈ چلائیں۔ 'سی ایس ای' ٹیکسٹ فائل میں چار بار شائع ہوا۔ 35 اور 15 دو جگہوں پر موجود ہیں۔

$کیٹstudents.txt

مندرجہ ذیل کمانڈ سیڈ اسکرپٹ پر مبنی متعدد لائنوں کے مواد کو تبدیل کرے گی۔

$sed replace.sed students.txt

کمانڈ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

نتیجہ

ایک سے زیادہ لائنوں کو تبدیل کرنے کے مختلف طریقے یا ایک سے زیادہ لائنوں کے مواد کو `sed` کمانڈ کا استعمال کرتے ہوئے اس ٹیوٹوریل میں دکھایا گیا ہے۔ ایک sed فائل سے 'sed' اسکرپٹ کو کیسے عمل میں لایا جا سکتا ہے اس ٹیوٹوریل میں بھی دکھایا گیا ہے۔ مجھے امید ہے کہ یہ ٹیوٹوریل قارئین کو 'sed' کمانڈ کا استعمال کرتے ہوئے کسی بھی فائل کی متعدد لائنوں کو تبدیل کرنے میں مدد کرے گا۔