سیڈ
اسٹریم ایڈیٹر کا مطلب ہے۔ یہ لینکس کے لیے کمانڈ لائن پر مبنی ایڈیٹر ہے۔ sed کا مقبول استعمال لینکس میں آٹومیشن اسکرپٹ کے حصے کے طور پر فائل(ز) میں ترمیم کرنے کے لیے ہے، جیسا کہ عام ایڈیٹرز کو فعال صارف کے ان پٹ کی ضرورت ہوتی ہے اور وہ ایڈیٹر اسکرینوں سے باہر فائلوں میں ترمیم نہیں کرسکتے ہیں۔ Sed سب سے زیادہ عام طور پر کمانڈ لائن سے ڈھونڈنے اور تبدیل کرنے کے لیے استعمال ہوتا ہے۔
اس قسم کے ٹیکسٹ ایڈیٹر کو نان انٹرایکٹو ٹیکسٹ ایڈیٹر کے طور پر بھی درجہ بندی کیا جا سکتا ہے۔
آئیے Sed کا استعمال کرتے ہوئے فائلوں میں ترمیم کرنے کے لیے کچھ عام اختیارات دیکھتے ہیں۔ ہم مندرجہ ذیل فائل کو بطور مثال لیں گے۔
$: cat test.txt ایک تیز بھورے کتے نے سست بلی پر چھلانگ لگا دی۔ لینکس آپریٹنگ سسٹم۔ میری جگہ کے قریب جنگل میں بلی کے ساتھ بھیڑیے بھی ہیں۔
تلاش کریں اور تبدیل کریں۔
فائل میں سٹرنگ تلاش کرنے اور دوسری سٹرنگ سے تبدیل کرنے کے لیے، چلائیں:
sed -i "s/cat/fox/g" test.txt
یہاں، دی -میں
flag sed کو فائل میں تبدیلیاں لکھنے کی ہدایت کرتا ہے۔ اس جھنڈے کے بغیر، sed
صرف فائل کو تبدیل شدہ سٹرنگ کے ساتھ ظاہر کرے گا۔
حوالوں میں، ہمارے پاس ہے۔ s/cat/fox/g
. دی s
کی تلاش اور تبدیلی کمانڈ کے لیے ہے۔ sed
. پھر ہمارے پاس تلاش کی جانے والی تار ہے، جو کہ ہے۔ کیٹ
. پھر اس کے ساتھ بدلنے والی تار، یعنی، لومڑی
. آخر میں، ہمارے پاس اختیاری ہے۔ جی
، جو ہدایت دیتا ہے۔ sed
فائل کی تمام لائنوں پر تمام واقعات کو تبدیل کرنے کے لئے۔ کے بغیر جی
، sed صرف پہلی صورت کی جگہ لے گا۔ کیٹ
ہر لائن پر.
ریجیکس یہاں بھی استعمال کیا جا سکتا ہے۔
sed -i "s/f[a-z]*\./cat\./g"
داخل کریں
مماثل سٹرنگ والی لائن سے پہلے متن داخل کرنے کے لیے، استعمال کریں:
sed -i "/cat/i Start:" test.txt
یہاں، کیٹ
تلاش کی گئی تار ہے اور شروع کریں:
اس لائن سے پہلے داخل ہونے والی سٹرنگ ہے جہاں تلاش کی گئی سٹرنگ پائی جاتی ہے۔
اسی طرح، ایک لائن کے بعد متن داخل کرنے کے لیے، استعمال کریں:
sed -i "/ fox/a End۔" test.txt
حذف کریں۔
ذیلی اسٹرنگ والی لائن کو حذف کرنے کے لیے، استعمال کریں:
sed -i "/Linux/d" test.txt
لائن نمبر والی لائن کو حذف کرنے کے لیے، جیسے۔ پہلی لائن، استعمال کریں:
sed -i '1d' test.txt
متعدد افعال کو یکجا کرنا
متعدد افعال کو یکجا کرنے کے لیے، جیسے۔ تلاش کریں اور تبدیل کریں، حذف کریں، ایک کمانڈ میں، -ای
پرچم استعمال کیا جا سکتا ہے.
sed -i -e "s/fox/cat/g" -e '2d' test.txt
? شاباش!