لینکس پر سیڈ کمانڈ کا استعمال کیسے کریں
یہ پاگل لگ سکتا ہے ، لیکن لینکس سیڈ
کمانڈ انٹرفیس کے بغیر ٹیکسٹ ایڈیٹر ہے۔ آپ فائلوں اور سلسلوں میں متن کو جوڑنے کے ل to اسے کمانڈ لائن سے استعمال کرسکتے ہیں۔ ہم آپ کو دکھائیں گے کہ اس کی طاقت کو کس طرح استعمال کرنا ہے۔
لالچ کی طاقت
سیڈ
کمانڈ ذرا شطرنج کی طرح ہے: بنیادی باتیں سیکھنے میں ایک گھنٹہ لگتا ہے اور ان میں مہارت حاصل کرنے کے لئے زندگی بھر (یا ، کم از کم بہت زیادہ مشق)۔ ہم آپ کو ہر اہم زمرے میں کھلنے والے جیمبٹ کا انتخاب دکھائیں گے سیڈ
فعالیت
سیڈ
ایک اسٹریم ایڈیٹر ہے جو پائپڈ ان پٹ یا ٹیکسٹ کی فائلوں پر کام کرتا ہے۔ تاہم ، اس میں انٹرایکٹو ٹیکسٹ ایڈیٹر انٹرفیس نہیں ہے۔ بلکہ ، آپ اس پر عمل کرنے کے لئے ہدایات فراہم کرتے ہیں جیسے یہ متن کے ذریعے کام کرتا ہے۔ یہ سبھی باش اور دیگر کمانڈ لائن شیلوں میں کام کرتا ہے۔
کے ساتھ سیڈ
آپ درج ذیل میں سے سبھی کر سکتے ہیں:
- متن منتخب کریں
- متبادل متن
- متن میں لکیریں شامل کریں
- متن سے لائنیں حذف کریں
- ایک اصل فائل میں ترمیم کریں (یا محفوظ کریں)
ہم نے اپنی مثالوں کو تصورات کو متعارف کرانے اور اس کا مظاہرہ کرنے کے لئے تشکیل دیا ہے ، نہ کہ تکلیف پیدا کریں (اور کم سے کم قابل رسائی) سیڈ
احکامات تاہم ، کی شکل ملاپ اور متن کے انتخاب کی خصوصیات سیڈ
باقاعدگی سے اظہار (regexes) پر بھروسہ کریں۔ اس سے بہتر استفادہ کرنے کے ل You آپ کو ان سے کچھ واقفیت درکار ہوگی سیڈ
.
متعلقہ:لینکس پر باقاعدہ اظہار (ریجیکس) استعمال کرنے کا طریقہ
ایک سادہ مثال
پہلے ، ہم استعمال کرنے جارہے ہیں بازگشت
کو کچھ متن بھیجنے کے لئے سیڈ
ایک پائپ کے ذریعے ، اور ہے سیڈ
متن کا ایک حصہ متبادل بنائیں۔ ایسا کرنے کے ل we ، ہم مندرجہ ذیل ٹائپ کریں:
گونج ہیوٹوگونک | sed 's / gonk / geek /'
بازگشت
کمانڈ "ہاؤٹوگونک" بھیجتا ہے سیڈ
، اور ہمارے متبادل متبادل اصول ("متبادل" کے معنیٰ ہیں) لاگو ہوتے ہیں۔سیڈ
پہلی تار کی موجودگی کے لئے ان پٹ ٹیکسٹ کو تلاش کرتا ہے ، اور کسی بھی میچ کو دوسرے کے ساتھ تبدیل کردے گا۔
تار "گونک" کو "گیک" نے تبدیل کیا ہے ، اور نئی سٹرنگ کو ٹرمینل ونڈو میں پرنٹ کیا گیا ہے۔
متبادل شاید اس کا سب سے عام استعمال ہیں سیڈ
. اس سے پہلے کہ ہم متبادلوں میں مزید گہرا غوطہ لگائیں ، حالانکہ ، ہمیں متن کو منتخب کرنے اور اس سے میچ کرنے کا طریقہ جاننے کی ضرورت ہے۔
متن کا انتخاب
ہمیں اپنی مثالوں کے ل a ایک ٹیکسٹ فائل کی ضرورت ہوگی۔ ہم ایک ایسی سمت کا استعمال کریں گے جس میں سموئیل ٹیلر کولریج کی مہاکاوی نظم "قدیم مرینر کا رم" کی آیات کا انتخاب موجود ہے۔
اس پر ایک نظر ڈالنے کے لئے ہم درج ذیل کو ٹائپ کرتے ہیں کم
:
کم coleridge.txt
فائل سے کچھ لائنوں کو منتخب کرنے کے ل we ، ہم جس حد کو منتخب کرنا چاہتے ہیں اس کی شروعات اور اختتام لائنیں فراہم کرتے ہیں۔ ایک ہی نمبر اس لائن کو منتخب کرتی ہے۔
ایک سے چار لائنیں نکالنے کے ل we ، ہم یہ کمانڈ ٹائپ کرتے ہیں:
sed -n '1،4p' coleridge.txt
کے درمیان کوما نوٹ کریں 1
اور 4
. پی
کا مطلب ہے "مماثل لائنیں چھاپیں۔" پہلے سے طے شدہ ،سیڈ
تمام لائنوں کو پرنٹ کرتا ہے۔ ہم فائل میں موجود تمام متن کو دو بار چھپی ہوئی ملاپ کی لکیروں کے ساتھ دیکھیں گے۔ اس کی روک تھام کے لئے ، ہم اس کا استعمال کریں گے -n
(خاموش) آپشن غیر مماثل متن کو دبانے کا۔
ہم لائن نمبر تبدیل کرتے ہیں تاکہ ہم ایک مختلف آیت کا انتخاب کرسکیں ، جیسا کہ ذیل میں دکھایا گیا ہے:
sed -n '6،9p' coleridge.txt
ہم استعمال کرسکتے ہیں -e
(اظہار) متعدد انتخاب کرنے کا اختیار۔ دو تاثرات کے ساتھ ، ہم دو آیات کا انتخاب کرسکتے ہیں ، جیسے:
sed -n -e '1،4p' -e '31، 34p 'coleridge.txt
اگر ہم دوسرے اظہار میں پہلی تعداد کو کم کردیں تو ، ہم ان دو آیات کے بیچ ایک خالی داخل کرسکتے ہیں۔ ہم درج ذیل کو ٹائپ کرتے ہیں:
sed -n -e '1،4p' -e '30، 34p 'coleridge.txt
ہم شروعاتی لائن کا انتخاب بھی کرسکتے ہیں اور بتا سکتے ہیں سیڈ
فائل میں قدم رکھنے اور متبادل لائنیں ، ہر پانچویں لائن پرنٹ کرنے کے ل، ، یا کسی بھی طرح کی لائنوں کو چھوڑنا۔ کمانڈ ان لوگوں کی طرح ہے جو ہم نے کسی حد کو منتخب کرنے کے لئے اوپر استعمال کیا۔ تاہم ، اس بار ، ہم ایک ٹلڈ استعمال کریں گے (~
) اعداد کو الگ کرنے کے لئے کوما کے بجائے۔
پہلی نمبر ابتدائی لائن کی نشاندہی کرتی ہے۔ دوسرا نمبر بتاتا ہے سیڈ
شروعاتی لائن کے بعد کون سی لائنیں ہم دیکھنا چاہتے ہیں۔ نمبر 2 کا مطلب ہر دوسری لائن ہے ، 3 کا مطلب ہر تیسری لائن ہے ، وغیرہ۔
ہم درج ذیل کو ٹائپ کرتے ہیں:
sed -n '1 ~ 2p' coleridge.txt
آپ ہمیشہ یہ نہیں جان سکیں گے کہ آپ جو متن ڈھونڈ رہے ہیں وہ فائل میں کہاں ہے ، اس کا مطلب ہے کہ لائن نمبر ہمیشہ زیادہ مددگار نہیں ہوں گے۔ تاہم ، آپ یہ بھی استعمال کرسکتے ہیں سیڈ
ان لائنوں کا انتخاب کرنا جس میں ملاوٹ والے متن کے نمونوں پر مشتمل ہو مثال کے طور پر ، آئیے تمام لائنوں کو نکالیں جو "اور" سے شروع ہوتی ہیں۔
کیریٹ (^
) لائن کے آغاز کی نمائندگی کرتا ہے۔ ہم اپنی تلاش کی اصطلاح کو آگے کی سلاشوں میں بند کردیں گے (/
). ہم نے "اور" کے بعد بھی ایک جگہ شامل کی ہے لہذا نتیجہ میں "Android" جیسے الفاظ شامل نہیں ہوں گے۔
پڑھنا سیڈ
پہلے اسکرپٹس قدرے سخت ہوسکتی ہیں۔ / پی
مطلب "پرنٹ" ، جس طرح یہ ہمارے اوپر استعمال ہونے والے احکامات میں ہوتا ہے۔ مندرجہ ذیل کمانڈ میں ، اگرچہ ، اس سے پہلے ایک فارورڈ سلیش ہے:
sed -n '/ ^ اور / p' coleridge.txt
"اور" کے ساتھ شروع ہونے والی تین لائنیں فائل سے نکالی گئیں اور ہمارے لئے ظاہر کی گئیں۔
متبادل بنانا
ہماری پہلی مثال میں ، ہم نے آپ کو a کے لئے درج ذیل بنیادی شکل دکھائے سیڈ
متبادل:
گونج ہیوٹوگونک | sed 's / gonk / geek /'
s
بتاتا ہے سیڈ
یہ ایک متبادل ہے۔ پہلی سٹرنگ سرچ پیٹرن ہے ، اور دوسرا ٹیکسٹ ہے جس کے ساتھ ہم اس مماثل ٹیکسٹ کو تبدیل کرنا چاہتے ہیں۔ بالکل ، جیسا کہ تمام چیزیں لینکس کی طرح ، شیطان بھی تفصیلات میں ہے۔
ہم "دن" کے تمام واقعات کو "ہفتہ" میں تبدیل کرنے کے لئے درج ذیل ٹائپ کرتے ہیں ، اور مرینر اور الباٹراس کو بانڈ کیلئے مزید وقت دیتے ہیں:
sed -n 's / دن / ہفتہ / p' coleridge.txt
پہلی سطر میں ، صرف "دن" کا دوسرا واقعہ بدلا جاتا ہے۔ اس وجہ سے ہے سیڈ
ہر لائن کے مطابق پہلے میچ کے بعد رک جاتا ہے۔ ہمیں عالمی سطح پر تلاش کرنے کے ل We ، جیسے کہ ذیل میں دکھایا گیا ہے ، اظہار کے آخر میں ایک "g" شامل کرنا ہے تاکہ ہر لائن میں موجود تمام میچوں پر عملدرآمد ہو۔
sed -n 's / دن / ہفتہ / جی پی' coleridge.txt
یہ پہلی لائن میں چار میں سے تین سے ملتا ہے۔ کیونکہ پہلا لفظ "دن" ہے اور سیڈ
معاملہ حساس ہے ، اس مثال کو "دن" کی طرح نہیں سمجھا جاتا ہے۔
ہم نے مندرجہ ذیل ٹائپ کریں ، ایک کو شامل کریں میں
اس معاملے میں عدم حساسیت کی نشاندہی کرنے کے لئے اظہار خیال کے آخر میں کمانڈ پر:
sed -n 's / day / ہفتے / gip' coleridge.txt
یہ کام کرتا ہے ، لیکن ہوسکتا ہے کہ آپ ہمیشہ ہر چیز کے لئے کیس کی بے حسی کو بند نہیں کرنا چاہتے۔ ان واقعات میں ، آپ پیٹرن کے ساتھ مخصوص کیس میں غیر حساسیت کو شامل کرنے کے لئے ایک ریجیکس گروپ استعمال کرسکتے ہیں۔
مثال کے طور پر ، اگر ہم مربع بریکٹ میں حروف کو منسلک کرتے ہیں ([]
) ، ان کی ترجمانی "حرفوں کی اس فہرست میں سے کسی بھی کردار" کے طور پر کی گئی ہے۔
ہم مندرجہ ذیل ٹائپ کرتے ہیں ، اور گروپ میں "D" اور "d" شامل کرتے ہیں ، تاکہ یہ یقینی بنائے کہ یہ "دن" اور "دن" دونوں سے مماثل ہے:
sed -n 's / [Dd] ay / ہفتے / جی پی' coleridge.txt
ہم فائل کے حصوں تک متبادل کو بھی محدود کرسکتے ہیں۔ ہم کہتے ہیں کہ ہماری آیت میں پہلی آیت میں عجیب و غریب جگہ ہے۔ ہم پہلی آیت کو دیکھنے کے لئے مندرجہ ذیل واقف حکم کا استعمال کرسکتے ہیں۔
sed -n '1،4p' coleridge.txt
ہم دو جگہیں تلاش کریں گے اور انہیں ایک جگہ کے ساتھ متبادل بنائیں گے۔ ہم عالمی سطح پر یہ کریں گے تاکہ پوری لائن میں ایکشن دہرایا جائے۔ واضح کرنے کے لئے ، تلاش کا نمونہ جگہ ہے ، خلائی ستارہ (*
) ، اور متبادل کی تار ایک ہی جگہ ہے۔ 1,4
فائل کی پہلی چار لائنوں تک متبادل کو محدود کردیتی ہے۔
ہم نے ان سب کو ایک ساتھ مل کر مندرجہ ذیل کمانڈ میں رکھا ہے۔
sed -n '1،4 s / * / / gp' coleridge.txt
یہ اچھی طرح سے کام کرتا ہے! تلاش کا نمونہ وہی ہے جو یہاں اہم ہے۔ نجمہ (*
) صفر یا اس سے پہلے کے کردار کی نمائندگی کرتا ہے ، جو ایک جگہ ہے۔ اس طرح ، تلاش کا نمونہ ایک جگہ یا اس سے زیادہ کے تار تلاش کررہا ہے۔
اگر ہم متعدد خالی جگہوں کے کسی بھی ترتیب کے لئے ایک ہی جگہ کو تبدیل کرتے ہیں تو ، ہم ہر لفظ کے درمیان ایک ہی جگہ کے ساتھ ، فائل کو باقاعدہ وقفہ کاری پر لوٹائیں گے۔ اس سے کچھ معاملات میں کسی ایک جگہ کے ل single بھی ایک جگہ کی جگہ ہوگی ، لیکن اس سے کسی بھی چیز کو منفی اثر نہیں پڑے گا — ہمیں پھر بھی اپنا مطلوبہ نتیجہ حاصل ہوگا۔
اگر ہم مندرجہ ذیل ٹائپ کرتے ہیں اور تلاش کے پیٹرن کو ایک ہی جگہ پر کم کرتے ہیں تو ، آپ کو فوری طور پر نظر آئے گا کہ ہمیں دو جگہوں کو کیوں شامل کرنا ہے:
sed -n '1،4 s / * / / gp' coleridge.txt
چونکہ نجمہ صفر یا اس سے زیادہ کے سابقہ کردار سے مماثلت رکھتا ہے ، لہذا وہ ہر ایک کردار کو دیکھتا ہے جو خلا کو "صفر جگہ" نہیں سمجھتا اور اس پر متبادل لگاتا ہے۔
تاہم ، اگر ہم تلاش کے نمونے میں دو جگہیں شامل کریں ،سیڈ
اس کی جگہ لے جانے سے پہلے کم از کم ایک خلائی کردار تلاش کرنا چاہئے۔ اس سے اس بات کو یقینی بنایا جاسکتا ہے کہ جگہ خانے اچھے نہ رہیں گے۔
ہم استعمال کرتے ہوئے درج ذیل کو ٹائپ کریں -e
(اظہار) ہم نے پہلے استعمال کیا ، جو ہمیں بیک وقت دو یا زیادہ متبادل بنانے کی اجازت دیتا ہے:
sed -n -e 's / تحریک / لہرانا / gip' -e 's / بحر / گٹر / gip' coleridge.txt
اگر ہم سیمیکلن کا استعمال کریں تو ہم بھی اسی نتیجے کو حاصل کرسکتے ہیں (;
) دونوں تاثرات کو الگ کرنے کے ل، ، جیسے:
sed -n 's / تحریک / پھڑپھڑ / gip؛ s / سمندر / گٹر / gip' coleridge.txt
جب ہم نے مندرجہ ذیل کمانڈ میں "ہفتہ" کے لئے "دن" تبدیل کیا ، تو "اچھی طرح سے ایک دن" کے اظہار میں "ڈے" کی صورت بھی تبدیل کردی گئی۔
sed -n 's / [Dd] ay / ہفتے / جی پی' coleridge.txt
اس کی روک تھام کے لئے ، ہم صرف ان لائنوں پر متبادل کی کوشش کر سکتے ہیں جو کسی اور طرز سے ملتے ہیں۔ اگر ہم شروع میں ہی سرچ پیٹرن رکھنے کے لئے کمانڈ میں ردوبدل کرتے ہیں تو ، ہم صرف ان لائنوں پر چلانے پر غور کریں گے جو اس طرز سے ملتی ہیں۔
ہم اپنے مماثل پیٹرن کو لفظ "بعد" بنانے کے لئے درج ذیل کو ٹائپ کرتے ہیں:
sed -n '/ after / s / [Dd] ay / ہفتے / جی پی' coleridge.txt
اس سے ہمیں وہ جواب ملتا ہے جو ہم چاہتے ہیں۔
مزید پیچیدہ متبادلات
آئیے کولرج کو ایک وقفہ دیں اور استعمال کریں سیڈ
سے نام نکالنے کے لئے وغیرہ / passwd
فائل
اس کے کرنے کے لئے مختصر راستے ہیں (مزید اس کے بعد) ، لیکن ہم کسی اور تصور کو ظاہر کرنے کے لئے یہاں طویل تر راستہ استعمال کریں گے۔ تلاش کے نمونہ میں ہر ایک مماثل آئٹم (جسے subexpressions کہا جاتا ہے) کا نمبر لگایا جاسکتا ہے (زیادہ سے زیادہ نو آئٹمز تک)۔ اس کے بعد آپ ان نمبروں کو اپنے میں استعمال کرسکتے ہیںسیڈ
مخصوص subexpresstions کے حوالہ کرنے کے لئے حکم دیتا ہے.
آپ کو قوسین میں سوب ایکسپریس کو منسلک کرنا ہوگا [()
] کام کرنے کے ل.۔ قوسین میں بھی پچھلے ٹکڑے ٹکڑے ہونے سے پہلے ہونا چاہئے (\
) تاکہ ان کے ساتھ ایک عام کردار کی طرح سلوک نہ کیا جاسکے۔
ایسا کرنے کے ل you ، آپ درج ذیل کو ٹائپ کریں گے۔
ایس / / \ ([[^:] * \)). * / \ 1 / '/ وغیرہ / پاس ڈبلیو
آئیے اس کو توڑ دیں:
بیٹا
:سیڈ
کمانڈ اور متبادل اظہار کا آغاز۔\(
: افتتاحی قوسین [(
] پیچھے ہٹنا سے پہلے سوب ایکسپریشن کو گھیرانا (\
).[^:]*
: تلاش کی اصطلاح کا پہلا سوبی ایکسپریس ایک مربع خط وحدت میں ایک گروپ پر مشتمل ہے۔ کیریٹ (^
) کا مطلب "نہیں" جب کسی گروپ میں استعمال ہوتا ہے۔ ایک گروپ کا مطلب ہے کوئی بھی کردار جو نوآبادیات نہیں ہے (:
) میچ کے طور پر قبول کیا جائے گا۔\)
: اختتامی قوسین [)
] ایک پچھلے حصے کے پیچھے (\
)..*
: اس دوسری تلاش کے تعیxpن کا مطلب ہے "کوئی بھی کردار اور ان میں سے کوئی بھی تعداد۔"/\1
: اظہار کے متبادل حصے پر مشتمل ہے1
اس سے پہلے بیک سلیش (\
). یہ اس متن کی نمائندگی کرتا ہے جو پہلی سوپسپریشن سے مماثل ہے۔/'
: اختتامی آگے سلیش (/
) اور ایک حوالہ ('
) ختمسیڈ
کمانڈ.
اس کا کیا مطلب ہے کہ ہم ایسے حروف کی کوئی تار ڈھونڈ رہے ہیں جس میں بڑی آنت نہیں ہے (:
) ، جو متن کے ملاپ کی پہلی مثال ہوگی۔ اس کے بعد ، ہم اس لائن پر کسی اور چیز کی تلاش کر رہے ہیں ، جو متن کے ملاپ کی دوسری مثال ہوگی۔ ہم پوری لکیر کو اس ٹیکسٹ کے ساتھ تبدیل کرنے جارہے ہیں جو پہلے سوب ایکسپریس سے مماثل ہے۔
میں ہر لائن / وغیرہ / passwd
فائل بڑی آنت سے ختم شدہ صارف نام سے شروع ہوتی ہے۔ ہم ہر چیز کو پہلے آنت سے ملتے ہیں ، اور پھر اس لائن کو پوری لائن میں بدل دیتے ہیں۔ لہذا ، ہم نے صارف نام کو الگ تھلگ کردیا ہے۔
اگلا ، ہم قوسین میں دوسرا سوب ایکسپریس (منسلک) کریں گے [()
] لہذا ہم بھی تعداد کے لحاظ سے اس کا حوالہ دے سکتے ہیں۔ ہم بھی تبدیل کریں گے \1
کے ساتھ \2
. ہماری کمانڈ اب پوری لائن کو پہلے بڑی آنت کی ہر چیز سے بدل دے گی (:
) لائن کے آخر تک۔
ہم درج ذیل کو ٹائپ کرتے ہیں:
sed 's / \ ([[^:] * \) \ (. * \) / \ 2 /' / وغیرہ / passwd
وہ چھوٹی چھوٹی تبدیلیاں کمانڈ کے معنی کو موڑ دیتی ہیں ، اور ہمیں صارف ناموں کے علاوہ سب کچھ مل جاتا ہے۔
آئیے ، اس کے تیز اور آسان طریقہ پر ایک نظر ڈالیں۔
ہماری تلاش کی اصطلاح پہلے کالون سے ہے (:
) لائن کے آخر تک۔ کیونکہ ہمارا متبادل اظہار خالی ہے (//
) ، ہم مماثل متن کو کسی بھی چیز سے تبدیل نہیں کریں گے۔
تو ، ہم مندرجہ ذیل ٹائپ کرتے ہیں ، پہلے بڑی آنت سے ہر چیز کاٹ ڈالتے ہیں (:
) صرف صارف نام چھوڑ کر ، لائن کے آخر تک:
sed 's /:.*// "/ etc / passwd
آئیے ایک ایسی مثال دیکھیں جس میں ہم اسی کمانڈ میں پہلے اور دوسرے میچوں کا حوالہ دیتے ہیں۔
ہمارے پاس کوما کی فائل ہے (,
) پہلے اور آخری ناموں کو الگ کرنا۔ ہم ان کو "آخری نام ، پہلا نام" کے طور پر درج کرنا چاہتے ہیں۔ ہم استعمال کرسکتے ہیںکیٹ
، جیسا کہ ذیل میں دکھایا گیا ہے ، یہ دیکھنے کے لئے کہ فائل میں کیا ہے:
بلی geeks.txt
بہت پسند ہے سیڈ
احکامات ، یہ اگلے ایک شاید ناقابل تلافی لگ سکتا ہے:
sed 's / ^ \ (. * \)، \ (. * \) $ / \ 2، \ 1 / g' geeks.txt
یہ ایک متبادل کمان ہے جیسے ہم استعمال کرتے ہیں ، اور تلاش کا نمونہ بہت آسان ہے۔ ہم اسے نیچے توڑ دیں گے:
بیٹا
: عام متبادل حکم۔^
: کیونکہ کیریٹ کسی گروپ میں نہیں ہے ([]
) ، اس کا مطلب ہے "لائن کا آغاز۔"\(.*\),
: پہلا subexpression کسی بھی حرف کی تعداد ہے۔ یہ قوسین میں بند ہے [()
] ، جن میں سے ہر ایک کا پیچھے پیچھے ہونا ہے (\
) تاکہ ہم نمبر کے ذریعہ اس کا حوالہ دے سکیں۔ ہمارا اب تک کا پورا تلاش کا انداز لائن کے آغاز سے لے کر پہلی کوما تک تلاش کے طور پر ترجمہ کرتا ہے (,
) کسی بھی حرف کی کسی بھی تعداد کے ل.۔\(.*\)
: اگلی subexpression (دوبارہ) کسی بھی کردار کی تعداد ہے۔ یہ قوسین میں بھی منسلک ہے [()
] ، ان دونوں کا آغاز بیک سلیش (\
) تاکہ ہم نمبر کے مطابق مماثل متن کا حوالہ دے سکیں۔$/
: ڈالر کا نشان ($
) لائن کے اختتام کی نمائندگی کرتا ہے اور ہماری تلاش کو لائن کے اختتام تک جاری رکھنے کی اجازت دیتا ہے۔ ہم نے اس کا استعمال ڈالر کے نشان کو متعارف کرانے کے لئے کیا ہے۔ ستارے کے طور پر ہمیں یہاں واقعتا really ضرورت نہیں ہے (*
) اس منظر نامے میں لائن کے آخر میں جانا ہوگا۔ آگے کی سلیش (/
) سرچ پیٹرن سیکشن کو مکمل کرتا ہے۔\ 2، \ 1 / g '
: چونکہ ہم نے اپنے دونوں سوب ایکسپریسین کو قوسین میں بند کیا ہے ، لہذا ہم ان دونوں کی تعداد کے ذریعہ ان کا حوالہ دے سکتے ہیں۔ چونکہ ہم آرڈر کو تبدیل کرنا چاہتے ہیں ، لہذا ہم ان کو ٹائپ کرتے ہیںدوسرا میچ ، پہلا میچ
. نمبروں سے پہلے بیک سلیش سے پہلے ہونا چاہئے (\
)./ جی
: یہ ہماری لائن کو ہر لائن پر عالمی سطح پر کام کرنے کے قابل بناتا ہے۔geeks.txt
: ہم جس فائل پر کام کر رہے ہیں۔
آپ کٹ کمانڈ بھی استعمال کرسکتے ہیں (c
) پوری لائنوں کا متبادل بنانا جو آپ کے تلاش کے نمونوں سے ملتے ہیں۔ ہم اس میں "گردن" کے لفظ کے ساتھ لکیر ڈھونڈنے کے لئے مندرجہ ذیل ٹائپ کرتے ہیں ، اور اسے متن کی نئی تار کے ساتھ تبدیل کریں:
sed '/ گردن / c میری کلائی کے اردگرد تار لگا ہوا تھا' coleridge.txt
ہماری نئی لائن اب ہمارے نچوڑ کے نچلے حصے میں دکھائی دیتی ہے۔
لکیریں اور متن داخل کرنا
ہم اپنی فائل میں نئی لائنیں اور ٹیکسٹ بھی داخل کرسکتے ہیں۔ کسی بھی ملاپ کے بعد نئی لائنیں داخل کرنے کیلئے ، ہم ضمیمہ کمانڈ استعمال کریں گے (a
).
ہم جس فائل کے ساتھ کام کرنے جارہے ہیں وہ یہاں ہے:
بلی geeks.txt
اس پر عمل کرنا تھوڑا آسان بنانے کیلئے ہم نے لائنوں کو نمبر بنایا ہے۔
ہم ان لائنوں کو تلاش کرنے کے لئے مندرجہ ذیل ٹائپ کرتے ہیں جن میں لفظ "وہ" ہوتا ہے اور ان کے نیچے ایک نئی لائن داخل کرتے ہیں۔
sed '/ he / a -> داخل کیا گیا!' geeks.txt
ہم درج ذیل کو ٹائپ کرتے ہیں اور داخل کریں کمانڈ (میں
) ان لائنوں کے اوپر نئی لکیر ڈالنا جس میں مماثل متن موجود ہو:
sed '/ he / i -> داخل کیا گیا!' geeks.txt
ہم ایمپرسینڈ استعمال کرسکتے ہیں (&
) ، جو مطابقت پذیر لائن میں نیا متن شامل کرنے کے لئے ، اصلی مماثل متن کی نمائندگی کرتا ہے۔ \1
, \2
، اور اسی طرح ، مماثل subexpressions کی نمائندگی کریں۔
کسی لکیر کے آغاز میں متن شامل کرنے کے ل we ، ہم متبادل متبادل (کمانڈ) استعمال کریں گے جو لائن کی ہر چیز سے ملتا ہے ، متبادل شق کے ساتھ جو ہمارے نئے متن کو اصلی لائن کے ساتھ جوڑتا ہے۔
ان سب کو کرنے کے ل we ، ہم درج ذیل کو ٹائپ کرتے ہیں۔
sed 's /.*/--> داخل & /' geeks.txt
ہم مندرجہ ذیل کو ٹائپ کرتے ہیں ، بشمول جی
کمانڈ ، جو ہر لائن کے درمیان ایک خالی لائن شامل کرے گا:
sed 'G' geeks.txt
اگر آپ دو یا زیادہ خالی لائنیں شامل کرنا چاہتے ہیں تو ، آپ استعمال کرسکتے ہیں جی جی
, جی؛ جی؛ جی
، اور اسی طرح.
لائنز کو حذف کرنا
حذف کمانڈ (d
) ان لائنوں کو حذف کرتا ہے جو تلاش کے پیٹرن سے ملتی ہیں ، یا لائن نمبر یا حدود کے ساتھ مخصوص ہوتی ہیں۔
مثال کے طور پر ، تیسری لائن کو حذف کرنے کے لئے ، ہم درج ذیل کو ٹائپ کریں گے۔
sed '3d' geeks.txt
چار سے پانچ لائنوں کی حدود کو حذف کرنے کے لئے ، ہم درج ذیل کو ٹائپ کریں گے۔
sed '4،5d' geeks.txt
کسی حد سے باہر لائنوں کو حذف کرنے کے ل we ، ہم ایک تعی pointبی نقطہ استعمال کرتے ہیں (!
)، جیسا کہ نیچے دکھایا گیا ہے:
sed '6،7! d' geeks.txt
اپنی تبدیلیوں کو محفوظ کرنا
اب تک ، ہمارے سارے نتائج ٹرمینل ونڈو پر چھاپ چکے ہیں ، لیکن ہم نے انھیں ابھی کہیں بھی محفوظ نہیں کیا ہے۔ ان کو مستقل کرنے کے ل you ، آپ اپنی تبدیلیاں اصل فائل میں لکھ سکتے ہیں یا انہیں ایک نئی فائل پر بھیج سکتے ہیں۔
آپ کی اصل فائل کو لکھنے میں کچھ احتیاط کی ضرورت ہے۔ آپ تو سیڈ
کمانڈ غلط ہے ، آپ اصل فائل میں کچھ تبدیلیاں کر سکتے ہیں جن کو ختم کرنا مشکل ہے۔
ذہنی سکون کے ل، ، سیڈ
اس کے حکم پر عمل کرنے سے پہلے اصلی فائل کا بیک اپ تشکیل دے سکتا ہے۔
آپ جگہ میں اختیار استعمال کرسکتے ہیں (-میں
) بتانے کے لئےسیڈ
اصل فائل میں تبدیلیاں لکھیں ، لیکن اگر آپ اس میں فائل ایکسٹینشن شامل کرتے ہیں تو ، سیڈ
ایک نئی فائل میں اصل فائل کا بیک اپ لے گا۔ اس کا نام اصلی فائل جیسا ہی ہوگا ، لیکن نئی فائل کی توسیع کے ساتھ۔
اس کا مظاہرہ کرنے کے ل we ، ہم ان لائنوں کو تلاش کریں گے جس میں "وہ" کا لفظ موجود ہو اور انہیں حذف کریں۔ ہم اپنی اصل فائل کو بیک فائل میں ایکسٹینشن استعمال کرکے ایک نئی فائل کا بیک اپ بھی لیں گے۔
ان سب کو کرنے کے ل we ، ہم درج ذیل کو ٹائپ کرتے ہیں۔
sed -i'.bak '' /^.*He.*$/d 'geeks.txt
ہم یہ یقینی بنانے کے لئے درج ذیل کو ٹائپ کرتے ہیں کہ ہماری بیک اپ فائل میں کوئی تبدیلی نہیں ہے۔
بلی geeks.txt.bak
آؤٹ پٹ کو کسی نئی فائل میں ری ڈائریکٹ کرنے اور اسی طرح کا نتیجہ حاصل کرنے کے ل We ہم درج ذیل کو بھی ٹائپ کرسکتے ہیں۔
sed -i'bb '' /^.*He.*$/d 'geeks.txt> new_geeks.txt
ہم استعمال کرتے ہیں کیٹ
تبدیلیاں نئی فائل میں لکھی گئی تھیں کی تصدیق کے ل below ، جیسا کہ ذیل میں دکھایا گیا ہے:
بلی new_geeks.txt
یہ سب ختم کر دیا
جیسا کہ آپ نے محسوس کیا ہوگا ، یہاں تک کہ یہ فوری پرائمر بھی آن ہے سیڈ
کافی لمبا ہے۔ اس حکم کے پاس اور بھی بہت کچھ ہے ، اور اس کے علاوہ بھی آپ بہت کچھ کرسکتے ہیں۔
امید ہے کہ ، اگرچہ ، ان بنیادی تصورات نے ایک ٹھوس بنیاد مہیا کی ہے جس پر آپ مزید تشکیل سیکھتے ہی تعمیر کرسکتے ہیں۔