50 'لكن' أمثلة الأوامر

50 Sed Command Examples



'sed' ميزة مفيدة لمعالجة النصوص في جنو / لينكس. الشكل الكامل لـ 'sed' هو محرر البث. يمكن إجراء العديد من أنواع مهام معالجة النصوص البسيطة والمعقدة بسهولة بالغة باستخدام الأمر `sed`. يمكن البحث عن أي سلسلة معينة في نص أو ملف واستبدالها وحذفها باستخدام تعبير عادي مع الأمر sed. لكن هذه الأوامر تؤدي جميع أنواع التعديل مؤقتًا ولا يتم تغيير محتوى الملف الأصلي افتراضيًا. يمكن للمستخدم تخزين المحتوى المعدل في ملف آخر إذا لزم الأمر. يتم شرح الاستخدامات الأساسية لأمر `sed` في هذا البرنامج التعليمي باستخدام 50 مثالاً فريدًا. قبل بدء هذا البرنامج التعليمي ، يجب عليك التحقق من الإصدار المثبت من` sed` في نظام التشغيل لديك عن طريق تشغيل الأمر التالي. تم تصميم البرنامج التعليمي بناءً على GNU sed. لذا فإن هذا الإصدار من `sed` سيكون مطلوبًا للتدرب على الأمثلة الموضحة في هذا البرنامج التعليمي.

$سيد --إصدار

يوضح المخرج التالي أن الإصدار 4.4 من GNU Sed مثبت في النظام.









بناء الجملة:



سيد [والخيارات]...[النصي] [ملف]

إذا لم يتم توفير اسم ملف مع الأمر `sed` ، فسيعمل البرنامج النصي على بيانات الإدخال القياسية. يمكن تنفيذ البرنامج النصي `sed` بدون أي خيار.





المحتوى :

  1. استبدال النص الأساسي باستخدام 'sed'
  2. استبدل جميع مثيلات النص في سطر معين من الملف باستخدام الخيار 'g'
  3. استبدل التكرار الثاني فقط من تطابق في كل سطر
  4. استبدل آخر تكرار فقط للمباراة في كل سطر
  5. استبدل المطابقة الأولى في ملف بنص جديد
  6. استبدل آخر تطابق في ملف بنص جديد
  7. الهروب من الخط المائل العكسي في أوامر الاستبدال لإدارة البحث واستبدال مسارات الملفات
  8. استبدل جميع الملفات بالمسار الكامل باسم الملف بدون دليل
  9. استبدل النص ولكن فقط إذا تم العثور على نص آخر في السلسلة
  10. نص بديل ولكن فقط إذا لم يتم العثور على نص آخر في السلسلة
  11. أضف سلسلة قبل نمط المطابقة باستخدام 1 '
  12. حذف الأسطر المتطابقة
  13. احذف الخط المطابق وخطين بعد مطابقة السطر
  14. احذف جميع المسافات الموجودة في نهاية سطر النص
  15. احذف جميع الأسطر التي تحتوي على تطابق مرتين على السطر
  16. احذف جميع الأسطر التي تحتوي على مسافة بيضاء فقط
  17. احذف جميع الأحرف غير القابلة للطباعة
  18. إذا كان هناك تطابق في السطر ، فقم بإلحاق شيء ما بنهاية السطر
  19. إذا كان هناك تطابق في السطر أدخل السطر قبل المباراة
  20. إذا كان هناك تطابق في السطر أدخل السطر بعد المباراة
  21. إذا لم يكن هناك تطابق ، فقم بإلحاق شيء ما بنهاية السطر
  22. إذا لم يكن هناك تطابق احذف الخط
  23. تكرار النص المتطابق بعد إضافة مسافة بعد النص
  24. استبدل إحدى قائمة السلاسل بالسلسلة الجديدة
  25. استبدل السلسلة المتطابقة بسلسلة تحتوي على أسطر جديدة
  26. أزل الأسطر الجديدة من الملف وأدخل فاصلة في نهاية كل سطر
  27. أزل الفواصل وأضف أسطرًا جديدة لتقسيم النص إلى أسطر متعددة
  28. البحث عن تطابق غير حساس لحالة الأحرف وحذف السطر
  29. ابحث عن تطابق غير حساس لحالة الأحرف واستبدله بنص جديد
  30. ابحث عن تطابق غير حساس لحالة الأحرف واستبدله بأحرف كبيرة من نفس النص
  31. ابحث عن تطابق غير حساس لحالة الأحرف واستبدله بأحرف صغيرة من نفس النص
  32. استبدل كل الأحرف الكبيرة في النص بأحرف صغيرة
  33. ابحث عن الرقم في السطر وألحق رمز العملة بعد الرقم
  34. أضف فاصلات إلى الأرقام التي تحتوي على أكثر من 3 أرقام
  35. استبدل أحرف الجدولة بأربعة أحرف مسافات
  36. استبدل 4 أحرف مسافات متتالية بحرف جدولة
  37. اقتطاع كل الأسطر إلى أول 80 حرفًا
  38. ابحث عن سلسلة regex وألحق بعض النصوص القياسية بعدها
  39. ابحث عن سلسلة regex ونسخة ثانية من السلسلة التي تم العثور عليها بعدها
  40. تشغيل البرامج النصية `sed` متعددة الأسطر من ملف
  41. طابق نمطًا متعدد الأسطر واستبدله بنص جديد متعدد الأسطر
  42. استبدل ترتيب كلمتين تتطابق مع نمط
  43. استخدم أوامر sed المتعددة من سطر الأوامر
  44. ادمج sed مع أوامر أخرى
  45. أدخل سطرًا فارغًا في ملف
  46. احذف جميع الأحرف الأبجدية الرقمية من كل سطر في الملف.
  47. استخدم '&' لمطابقة السلسلة
  48. تبديل زوج من الكلمات
  49. اجعل الحرف الأول من كل كلمة كبيرًا
  50. طباعة أرقام الأسطر من الملف

1. استبدال النص الأساسي باستخدام 'sed'

يمكن البحث عن أي جزء معين من النص واستبداله باستخدام البحث واستبدال النمط باستخدام الأمر `sed`. في المثال التالي ، تشير كلمة 's' إلى مهمة البحث والاستبدال. سيتم البحث عن كلمة 'Bash' في النص ، لغة Bash النصية وإذا كانت الكلمة موجودة في النص فسيتم استبدالها بكلمة 'Perl'.



$رما - طرد - قذف لغة البرمجة Bash | سيد 's / Bash / Perl /'

انتاج:

كلمة 'باش' موجودة في النص. إذن الناتج هو 'لغة برمجة Perl'.

يمكن استخدام الأمر `sed` لاستبدال أي جزء من محتوى الملف أيضًا. قم بإنشاء ملف نصي باسم من أيام الأسبوع. xt بالمحتوى التالي.

من أيام الأسبوع. xt

الإثنين
يوم الثلاثاء
الأربعاء
يوم الخميس
جمعة
السبت
يوم الأحد

سيبحث الأمر التالي عن النص 'Sunday' ويستبدل بالنص 'Sunday is holiday'.

$قطمن أيام الأسبوع. xt
$سيد 's / Sunday / Sunday هو يوم عطلة /'من أيام الأسبوع. xt

انتاج:

'الأحد' موجود في ملف weekday.txt ويتم استبدال هذه الكلمة بالنص ، 'الأحد هو يوم عطلة' بعد تنفيذ الأمر 'sed' أعلاه.

اذهب إلى الأعلى

2. استبدل جميع مثيلات النص في سطر معين من الملف باستخدام الخيار 'g'

يُستخدم الخيار 'g' في الأمر 'sed' لاستبدال جميع تكرارات نمط المطابقة. قم بإنشاء ملف نصي باسم ملف python.txt بالمحتوى التالي لمعرفة استخدام خيار 'g'. هذا الملف يحتوي على الكلمة. 'بايثون' عدة مرات.

ملف python.txt

بايثون لغة شائعة جدًا.
لغة Python سهلة الاستخدام. لغة بايثون سهلة التعلم.
لغة Python هي لغة مشتركة بين الأنظمة الأساسية

سيحل الأمر التالي محل جميع تكرارات ' بايثون 'في السطر الثاني من الملف ، ملف python.txt . هنا، 'بايثون' يحدث مرتين في السطر الثاني.

$ القط الثعبان.رسالة قصيرة
$ sed'2 s / Python / perl / g'الثعبان.رسالة قصيرة

انتاج:

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي. هنا ، يتم استبدال كل تكرارات 'Python' في السطر الثاني بـ 'Perl'.

اذهب إلى الأعلى

3. استبدل التكرار الثاني فقط من تطابق في كل سطر

إذا ظهرت أي كلمة عدة مرات في ملف ، فيمكن استبدال التكرار المحدد للكلمة في كل سطر باستخدام الأمر `sed` مع رقم التكرار. سيحل الأمر `sed` التالي محل التكرار الثاني لنمط البحث في كل سطر من الملف ، ملف python.txt .

$ sed's / Python / perl / g2'الثعبان.رسالة قصيرة

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هنا ، نص البحث ، ' بايثون يظهر مرتين في السطر الثاني فقط ويتم استبداله بالنص ، ' بيرل '.

اذهب إلى الأعلى

4. استبدل آخر تكرار فقط للمباراة في كل سطر

قم بإنشاء ملف نصي باسم lang.txt بالمحتوى التالي.

lang.txt

لغة البرمجة باش. لغة برمجة بايثون. لغة برمجة بيرل.
لغة ترميز النصوص التشعبية.
لغة التوصيف الموسعة.

$سيد 's / (. * ) برمجة / 1 كتابة /'lang.txt

اذهب إلى الأعلى

5. استبدل المطابقة الأولى في ملف بنص جديد

سيستبدل الأمر التالي فقط المطابقة الأولى لنمط البحث ، ' بايثون بالنص ، 'بيرل '. هنا، '1' يستخدم لمطابقة التواجد الأول للنمط.

$ القط الثعبان.رسالة قصيرة
$ sed'1 s / Python / perl /'الثعبان.رسالة قصيرة

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. هنا. يتم استبدال التكرار الأول لـ 'Python' في السطر الأول بـ 'perl'.

اذهب إلى الأعلى

6. استبدل آخر تطابق في ملف بنص جديد

سيحل الأمر التالي محل آخر ظهور لنمط البحث ، 'بايثون بالنص ، 'سحق'. هنا، '$' يستخدم الرمز لمطابقة آخر ظهور للنمط.

$ القط الثعبان.رسالة قصيرة
$ لكن -e'$ s / Python / Bash /'الثعبان.رسالة قصيرة

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

7. الهروب من الخط المائل العكسي في أوامر الاستبدال لإدارة البحث واستبدال مسارات الملفات

من الضروري الهروب من الخط المائل العكسي في مسار الملف للبحث والاستبدال. سيضيف الأمر التالي لـ `sed` شرطة مائلة للخلف () في مسار الملف.

$رما - طرد - قذف /الصفحة الرئيسية/أوبونتو/الشفرة/بيرل/add.pl| سيد 's؛ /؛ \ /؛ g'

انتاج:

مسار الملف ، '/home/ubuntu/code/perl/add.pl' كمدخل في الأمر `sed` وسيظهر المخرج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

8. استبدال جميع الملفات المسار الكامل مع اسم الملف فقط أي دليل

يمكن استرجاع اسم الملف من مسار الملف بسهولة شديدة باستخدام ملفات الاسم الأساسي` أمر. يمكن أيضًا استخدام الأمر `sed` لاسترداد اسم الملف من مسار الملف. سيسترد الأمر التالي اسم الملف فقط من مسار الملف الذي يوفره الأمر `echo`.

$رما - طرد - قذف '/home/ubuntu/temp/myfile.txt' | سيد 'س/.*///'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هنا ، اسم الملف ، ' myfile.txt ' تتم طباعتها كإخراج.

اذهب إلى الأعلى

9. استبدل النص ولكن فقط في حالة وجود نص آخر في السلسلة

أنشئ ملفًا باسم ' dept.txt ' بالمحتوى التالي لاستبدال أي نص يستند إلى نص آخر.

قسم

قائمة إجمالي الطلاب:

CSE - العد
EEE - العد
المدني - العد

يتم استخدام أمرين replace في الأمر `sed` التالي. هنا ، النص ، عدد سيتم استبداله بـ 100 في السطر الذي يحتوي على النص ، 'محرك بحث مخصص والنص ، عدد' سيتم استبداله بـ 70 في السطر الذي يحتوي على نمط البحث ، ' إيييي' .

$قطقسم
$سيد '/ CSE / s / Count / 100 / ؛ / EEE / s / Count / 70 / ؛ 'قسم

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

10. استبدال النص ولكن فقط إذا لم يتم العثور على نص آخر في السلسلة

سيحل الأمر 'sed' التالي محل قيمة 'Count' في السطر الذي لا يحتوي على النص ، 'CSE'. قسم يحتوي الملف على سطرين لا يحتويان على النص ، 'محرك البحث المخصص'. لذلك ' عدد سيتم استبدال النص بـ 80 في سطرين.

$قطقسم
$سيد -أنا '/ CSE /! ق / العد / 80 / ؛ 'قسم

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

11. أضف سلسلة قبل وبعد نمط المطابقة باستخدام ' 1'

يُشار إلى تسلسل أنماط المطابقة لأمر 'sed' بـ ' 1' و ' 2' وما إلى ذلك. سيبحث الأمر 'sed' التالي في النمط 'Bash' وإذا تطابق النمط فسيتم الوصول إليه من خلال ' 1 ′ في جزء استبدال النص. هنا ، يتم البحث عن النص 'Bash' في نص الإدخال ، ويضاف نص واحد من قبل ويضاف نص آخر بعد ' 1'.

$رما - طرد - قذف لغة باش | سيد 's / (Bash ) / تعلم 1 البرمجة /'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هنا، ' يتعلم' تمت إضافة النص من قبل 'سحق' و ' برمجة 'تمت إضافة النص بعد' سحق'.

اذهب إلى الأعلى

12. حذف الأسطر المطابقة

'د' يستخدم الخيار في الأمر `sed` لحذف أي سطر من الملف. قم بإنشاء ملف باسم os.txt وأضف المحتوى التالي لاختبار وظيفة 'د' اختيار.

القط os.txt

شبابيك
لينكس
ذكري المظهر
أنت

سيحذف الأمر `sed` التالي تلك الأسطر من os.txt ملف يحتوي على النص ، 'نظام التشغيل'.

$قطos.txt
$سيد '/ د'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

13. حذف سطر مطابق وخطين بعد مطابقة السطر

سيحذف الأمر التالي ثلاثة أسطر من الملف os.txt إذا كان النمط ، لينكس وجد. يحتوي os.txt على النص ، لينكس 'في السطر الثاني. لذلك ، سيتم حذف هذا السطر والسطرين التاليين.

$سيد '/ Linux /، + 2d'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

14. احذف جميع المسافات الموجودة في نهاية سطر النص

استخدام [:فارغ:] يمكن استخدام class لإزالة المسافات وعلامات التبويب من النص أو محتوى أي ملف. سيؤدي الأمر التالي إلى إزالة المسافات الموجودة في نهاية كل سطر من الملف ، os.txt.

$قطos.txt
$سيد / [[: blank:]] * $ // 'os.txt

انتاج:

os.txt يحتوي على أسطر فارغة بعد كل سطر تم حذفها بواسطة الأمر `sed` أعلاه.

اذهب إلى الأعلى

15. احذف جميع الأسطر التي لها تطابق مرتين على السطر

قم بإنشاء ملف نصي باسم ، input.txt بالمحتوى التالي وحذف سطور الملف التي تحتوي على نمط البحث مرتين.

input.txt

PHP هي لغة برمجة نصية من جانب الخادم.
PHP هي لغة مفتوحة المصدر و PHP حساسة لحالة الأحرف.
PHP مستقل عن النظام الأساسي.

يحتوي نص 'PHP' على مرتين في السطر الثاني من الملف ، input.txt . يتم استخدام أمرين من 'sed' في هذا المثال لإزالة تلك الأسطر التي تحتوي على النمط ' بي أتش بي ' مرتين. سيحل الأمر 'sed' الأول محل التكرار الثاني لـ 'php' في كل سطر بـ ' دل 'وأرسل الإخراج إلى الأمر `sed` الثاني كإدخال. سيحذف الأمر `sed` الثاني تلك الأسطر التي تحتوي على النص ، دل '.

$قطinput.txt
$سيد 's / php / dl / i2؛ t'input.txt| سيد '/ dl / d'

انتاج:

input.txt يحتوي الملف على سطرين يحتويان على النمط ، 'بي أتش بي' مرتين. لذلك ، سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

16. احذف جميع الأسطر التي تحتوي على مسافة بيضاء فقط

حدد أي ملف يحتوي على سطور فارغة في المحتوى لاختبار هذا المثال. input.txt الملف الذي تم إنشاؤه في المثال السابق ، يحتوي على سطرين فارغين يمكن حذفهما باستخدام الأمر `sed` التالي. هنا ، يتم استخدام '^ $' لمعرفة الأسطر الفارغة في الملف ، input.txt.

$قطinput.txt
$سيد '/ ^ $ / d'input.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

17. حذف كافة الأحرف غير القابلة للطباعة

يمكن حذف الأحرف غير القابلة للطباعة من أي نص باستبدال الأحرف غير القابلة للطباعة بلا أحرف. تستخدم فئة [: print:] في هذا المثال لاكتشاف الأحرف غير القابلة للطباعة. ' t' هو حرف غير قابل للطباعة ولا يمكن تحليله مباشرة بواسطة الأمر 'echo'. لهذا ، يتم تعيين الحرف ' t' في متغير ، علامة التبويب $ المستخدمة في أمر 'echo'. يتم إرسال إخراج الأمر 'echo' في الأمر 'sed' الذي سيزيل الحرف ' t' من الإخراج.

$التبويب= دولار' t'
$رما - طرد - قذف 'أهلاtabWorld دولار'
$رما - طرد - قذف 'أهلاtabWorld دولار' | سيد / [^ [: print:]] // g '

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. سيطبع أمر echo الأول الإخراج بمسافة علامة التبويب وسيطبع الأمر `sed` الإخراج بعد إزالة مسافة علامة التبويب.

اذهب إلى الأعلى

18. إذا كان هناك تطابق في السطر ، فقم بإلحاق شيء بنهاية السطر

سيُلحق الأمر التالي '10' في نهاية السطر الذي يحتوي على النص ، 'Windows' في ملف os.txt ملف.

$قطos.txt
$سيد '/ Windows / s / $ / 10 /'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر.

اذهب إلى الأعلى

19. إذا كان هناك تطابق في السطر ، أدخل سطرًا قبل النص

سيبحث الأمر 'sed' التالي في النص ، ' PHP مستقل عن النظام الأساسي في ال input.txt الملف الذي تم إنشاؤه من قبل. إذا كان الملف يحتوي على هذا النص في أي سطر ، فإن ' PHP هي لغة مفسرة قبل ذلك السطر.

$قطinput.txt
$سيد '/ PHP هي لغة مستقلة عن النظام الأساسي / s / ^ / PHP هي لغة مفسرة. n /'input.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

20. إذا كان هناك تطابق في السطر ، أدخل سطرًا بعد ذلك السطر

سيبحث الأمر 'sed' التالي في النص ، ' لينكس في الملف os.txt وإذا كان النص موجودًا في أي سطر ، فإن النص الجديد ، ' أوبونتو بعد هذا السطر.

$قطos.txt
$سيد 's / Linux / & nUbuntu /'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

21. إذا لم يكن هناك تطابق ، فقم بإلحاق شيء ما بنهاية السطر

سيبحث الأمر `sed` التالي في هذه السطور os.txt لا يحتوي على النص ، 'Linux' وإلحاق النص ، نظام التشغيل 'في نهاية كل سطر. هنا، ' $ 'الرمز' يستخدم لتحديد السطر حيث سيتم إلحاق النص الجديد.

$قطos.txt
$سيد '/ لينكس /! S / $ / نظام التشغيل / 'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. توجد ثلاثة أسطر في الملف os.txt لا يحتوي على النص ، 'Linux' والنصوص الجديدة المضافة في نهاية هذه السطور.

اذهب إلى الأعلى

22. إذا لم يكن هناك تطابق ، احذف السطر

قم بإنشاء ملف باسم web.txt وأضف المحتوى التالي واحذف الأسطر التي لا تحتوي على النمط المطابق. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery سيبحث الأمر `sed` التالي ويحذف تلك الأسطر التي لا تحتوي على النص ،' CSS '. $ cat web.txt $ sed ‘/ CSS /! d’ web.txt انتاج: سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. يوجد سطر واحد في الملف يحتوي على النص ، 'CSE'. لذلك ، يحتوي الإخراج على سطر واحد فقط.

اذهب إلى الأعلى

23. تكرار النص المتطابق بعد إضافة مسافة بعد النص

سيبحث الأمر 'sed' التالي عن كلمة 'to' في الملف ، ملف python.txt وإذا كانت الكلمة موجودة ، فسيتم إدخال نفس الكلمة بعد كلمة البحث بإضافة مسافة. هنا، '&' يستخدم الرمز لإلحاق النص المكرر.

$قطملف python.txt
$سيد 's / to / & to / g'ملف python.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر. هنا ، يتم البحث عن كلمة 'إلى' في الملف ، ملف python.txt وهذه الكلمة موجودة في السطر الثاني من هذا الملف. وبالتالي، 'إلى 'بمسافة بعد النص المطابق.

اذهب إلى الأعلى

24. استبدال قائمة واحدة من السلاسل مع السلسلة الجديدة

يجب عليك إنشاء ملفي قائمة لاختبار هذا المثال. قم بإنشاء ملف نصي باسم list1.txt وأضف المحتوى التالي.

cat list1.txt

1001=>Jafar Ali
1023=>نير حسين
1067=>جون ميشيل

قم بإنشاء ملف نصي باسم list2.txt وأضف المحتوى التالي.

$ cat list2.txt

1001معدل CSE GPA3.63
1002معدل CSE GPA3.24
1023معدل CSE GPA3.11
1067معدل CSE GPA3.84

سيتطابق الأمر `sed` التالي مع العمود الأول من الملفين النصيين الموضحين أعلاه ويستبدل النص المطابق بقيمة العمود الثالث من الملف list1.txt.

$قطlist1.txt
$قطlist2.txt
$سيد 'قطlist1.txt| awk '{print' -e with / '$ 1' / '$ 3' / '}''<<<''cat list2.txt''

انتاج:

1001 و 1023 و 1067 من list1.txt يتطابق الملف مع البيانات الثلاثة الخاصة بـ list2.txt ملف ويتم استبدال هذه القيم بالأسماء المقابلة للعمود الثالث من list1.txt .

اذهب إلى الأعلى

25. استبدل السلسلة المطابقة بسلسلة تحتوي على أسطر جديدة

سيأخذ الأمر التالي مدخلات من الأمر `echo` ويبحث في الكلمة ، 'بايثون' في النص. إذا كانت الكلمة موجودة في النص ثم نص جديد ، 'نص مضاف' سيتم إدراجها مع سطر جديد. $ echo Bash Perl Python Java PHP ASP | sed 's / Python / Add Text n /' انتاج: سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

26. أزل الأسطر الجديدة من الملف وأدخل فاصلة في نهاية كل سطر

سيستبدل الأمر `sed` التالي كل سطر جديد بفاصلة في الملف os.txt . هنا، -مع يستخدم الخيار لفصل السطر بحرف NULL.

$سيد -مع 's / n /، / g'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

27. أزل الفواصل وأضف سطرًا جديدًا لتقسيم النص إلى أسطر متعددة

سيأخذ الأمر 'sed' التالي سطرًا مفصولاً بفواصل من أمر 'echo' كإدخال ويستبدل الفاصلة بسطر جديد.

$رما - طرد - قذف كنيز فاطمة الدفعة 30 | سيد 'س/،/ن/ ز '

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. يحتوي نص الإدخال على ثلاثة بيانات مفصولة بفواصل يتم استبدالها بسطر جديد ويتم طباعتها في ثلاثة أسطر.

اذهب إلى الأعلى

28. البحث عن تطابق حالة الأحرف وحذف السطر

يتم استخدام 'I' في الأمر 'sed' للمطابقة غير الحساسة لحالة الأحرف التي تشير إلى تجاهل الحالة. سيبحث الأمر `sed` التالي عن السطر الذي يحتوي على الكلمة ، لينكس 'وحذف السطر من os.txt ملف.

$قطos.txt
$سيد '/ لينكس / معرف'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. يحتوي os.txt على الكلمة ، 'Linux' التي تطابق النمط ، و 'linux' للبحث غير الحساس لحالة الأحرف وحذفها.

اذهب إلى الأعلى

29. البحث عن تطابق غير حساس لحالة الأحرف واستبدالها بنص جديد

سيأخذ الأمر 'sed' التالي المدخلات من الأمر 'echo' ويستبدل كلمة 'bash' بكلمة 'PHP'.

$رما - طرد - قذف 'أحب برمجة باش' | سيد 's / Bash / PHP / i'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هنا ، تطابقت كلمة 'Bash' مع كلمة 'bash' للبحث غير الحساس لحالة الأحرف واستبدالها بكلمة 'PHP'.

اذهب إلى الأعلى

30. البحث عن تطابق غير حساس لحالة الأحرف واستبدالها كلها بأحرف كبيرة من نفس النص

' U' يستخدم في `sed` لتحويل أي نص إلى كل الأحرف الكبيرة. سيبحث الأمر `sed` التالي عن الكلمة ، لينكس ' في ال os.txt ملف وإذا كانت الكلمة موجودة ، فسيتم استبدال الكلمة بجميع الأحرف الكبيرة.

$قطos.txt
$سيد 's / (linux ) / U 1 / Ig'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. يتم استبدال كلمة 'Linux' لملف os.txt بكلمة 'LINUX'.

اذهب إلى الأعلى

31. ابحث عن تطابق غير حساس لحالة الأحرف واستبدله بأحرف صغيرة من نفس النص

'ال' يُستخدم في `sed` لتحويل أي نص إلى جميع الأحرف الصغيرة. سيبحث الأمر `sed` التالي عن الكلمة ، 'Linux' في ال os.txt ملف واستبدال الكلمة بجميع الأحرف الصغيرة.

$قطos.txt
$سيد 's / (linux ) / L 1 / Ig'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. تم استبدال كلمة 'Linux' بكلمة 'linux' هنا.

اذهب إلى الأعلى

32. استبدل جميع الأحرف الكبيرة في النص بأحرف صغيرة

سيبحث الأمر `sed` التالي في جميع الأحرف الكبيرة في ملف os.txt ملف واستبدال الأحرف بأحرف صغيرة باستخدام ' L'.

$قطos.txt
$سيد 's / (. * ) / L 1 /'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

33. ابحث عن رقم في السطر وألحق أي رمز عملة قبل عدد

قم بإنشاء ملف باسم items.txt بالمحتوى التالي.

items.txt

HDD 100
شاشة 80
الماوس 10

سيبحث الأمر `sed` التالي عن الرقم في كل سطر من items.txt ملف وإلحاق رمز العملة '$' قبل كل رقم.

$قطitems.txt
$سيد 's / ([0-9] ) / $ 1 / g'items.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. هنا ، تتم إضافة الرمز '$' قبل رقم كل سطر.

اذهب إلى الأعلى

34. أضف فواصل للأرقام التي تحتوي على أكثر من 3 أرقام

سيأخذ الأمر 'sed' التالي رقمًا كمدخل من الأمر 'echo' ويضيف فاصلة بعد كل مجموعة من ثلاثة أرقام يتم عدها من اليمين. هنا ، يشير ': a' إلى التسمية ويستخدم 'ta' لتكرار عملية التجميع.

$رما - طرد - قذف '5098673' | سيد :إلى 's / (. * [0-9] ) ([0-9] {3 } ) / 1، 2 /؛ ta'

انتاج:

الرقم 5098673 مُعطى في الأمر 'echo' وأصدر الأمر 'sed' الرقم 5098673 بإضافة فاصلة بعد كل مجموعة مكونة من ثلاثة أرقام.

اذهب إلى الأعلى

35. يستبدل حرف الجدولة بأربعة أحرف مسافات

سيستبدل الأمر `sed` التالي كل حرف جدولة ( t) بأربعة أحرف مسافات. يُستخدم الرمز '$' في الأمر 'sed' لمطابقة حرف الجدولة ويستخدم 'g' لاستبدال جميع أحرف الجدولة.

$رما - طرد - قذف '1 t2 t3 ' | سيد$'s / t / / g'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

36. يستبدل 4 مسافات متتالية بحرف جدولة

سيستبدل الأمر التالي 4 أحرف متتالية بحرف علامة الجدولة ( t).

$رما - طرد - قذف '1 2' | سيد$'s / / t / g'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

37. اقتطاع كل الأسطر حتى 80 حرفًا

قم بإنشاء ملف نصي باسم in.txt الذي يحتوي على أسطر أكثر من 80 حرفًا لاختبار هذا المثال.

in.txt

PHP هي لغة برمجة نصية من جانب الخادم.
PHP هي لغة مفتوحة المصدر و PHP حساسة لحالة الأحرف. PHP مستقل عن النظام الأساسي.
سيقتطع الأمر `sed` التالي كل سطر من in.txt ملف إلى 80 حرفًا.

$قطin.txt
$سيد 's / (^. {1،80 } ). * / 1 /'in.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. يحتوي السطر الثاني من ملف in.txt على أكثر من 80 حرفًا ويتم اقتطاع هذا السطر في الإخراج.

اذهب إلى الأعلى

38. ابحث عن سلسلة regex وأضف بعض النصوص القياسية بعدها

سيبحث الأمر 'sed' التالي في النص ، ' أهلا 'في نص الإدخال وإلحاق النص ،' يوحنا 'بعد هذا النص.

$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 's / (hello ) / 1 John /'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

39. ابحث عن جملة regex وألحق بعض النصوص بعد التطابق الثاني في كل سطر

سيبحث الأمر 'sed' التالي في النص ، ' بي أتش بي 'في كل سطر من input.txt واستبدل المطابقة الثانية في كل سطر بالنص ، 'نص جديد مضاف' .

$قطinput.txt
$سيد 's / (PHP ) / 1 (تمت إضافة نص جديد) / 2'input.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. نص البحث ، ' بي أتش بي 'لمرتين في السطر الثاني والثالث من input.txt ملف. لذا ، فإن النص ، ' تمت إضافة نص جديد تم إدراجها في السطر الثاني والثالث.

اذهب إلى الأعلى

40. تشغيل البرامج النصية `sed` متعددة الأسطر من ملف

يمكن تخزين نصوص برمجية `sed` المتعددة في ملف ويمكن تنفيذ جميع البرامج النصية معًا عن طريق تشغيل الأمر` sed`. قم بإنشاء ملف باسم سيدكمد وأضف المحتوى التالي. هنا ، تمت إضافة نصين 'sed' في الملف. سيحل نص برمجي واحد محل النص ، ' بي أتش بي ' بواسطة 'ASP 'سيحل نص برمجي آخر محل النص ،' مستقل بالنص ، متكل '.

سيدكمد

س/بي أتش بي/ASP/
س/مستقل/متكل/

سيحل الأمر 'sed' التالي محل كل نص 'PHP' و 'مستقل' بواسطة 'ASP' و 'التابع'. هنا ، يتم استخدام الخيار '-f' في الأمر 'sed' لتنفيذ البرنامج النصي 'sed' من الملف.

$قطسيدكمد
$سيد -Fإدخال sedcmd.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

41. طابق نمط متعدد الأسطر واستبدله بنص جديد متعدد الأسطر

سيبحث الأمر `sed` التالي في النص متعدد الأسطر ، 'Linux nAndroid' وإذا تطابق النمط ، فسيتم استبدال الأسطر المطابقة بالنص متعدد الأسطر ، 'Ubuntu n Android Lollipop '. هنا ، يتم استخدام P و D للمعالجة متعددة الأسطر.

$قطos.txt
$سيد '$! N؛ s / Linux nAndoid / Ubuntu nAndoid Lollipop /؛ P؛ D'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

42. استبدل ترتيب كلمتين في نص يطابق النمط

سيأخذ الأمر `sed` التالي إدخال كلمتين من الأمر` echo` ويستبدل ترتيب هذه الكلمات.

$رما - طرد - قذف 'بيرل بيثون' | سيد / ([^] * ) * ([^] * ) / 2 1 / '

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

43. تنفيذ أوامر `sed` المتعددة من سطر الأوامر

يُستخدم الخيار '-e' في الأمر 'sed' لتشغيل عدة نصوص 'sed' من سطر الأوامر. سيأخذ الأمر 'sed' التالي نصًا كمدخلات من الأمر 'echo' ويستبدل ' أوبونتو ' بواسطة ' كوبونتو ' و ' المئات ' بواسطة ' فيدورا '.

$رما - طرد - قذف 'أوبونتو سينتوس ديبيان' | سيد في / أوبونتو / كوبونتو / ؛ ق / سينتوس / فيدورا / '

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هنا ، يتم استبدال 'Ubuntu' و 'Centos' بـ 'Kubuntu' و 'Fedora'.

اذهب إلى الأعلى

44. ادمج 'sed' مع أوامر أخرى

سيجمع الأمر التالي بين الأمر `sed` والأمر` cat`. سيأخذ الأمر `sed` الأول مدخلات من os.txt ملف وإرسال إخراج الأمر إلى الأمر 'sed' الثاني بعد استبدال النص 'Linux' بـ 'Fedora'. سيحل الأمر 'sed' الثاني محل النص 'Windows' بـ 'Windows 10'.

$قطos.txt| سيد 's / Linux / Fedora /'| سيد 's / windows / Windows 10 / i'

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

45. إدراج سطر فارغ في ملف

قم بإنشاء ملف باسم قائمة الأمراض بالمحتوى التالي.

قائمة الأمراض

# معرف # الاسم
[101] -لكن
[102] -نيها

يستخدم الخيار 'G' لإدراج سطر فارغ في الملف. سيقوم الأمر `sed` التالي بإدراج أسطر فارغة بعد كل سطر من قائمة الأمراض ملف.

$قطقائمة الأمراض
$سيدG stdlist

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه. يتم إدخال سطر فارغ بعد كل سطر من الملف.

اذهب إلى الأعلى

46. ​​استبدل جميع الأحرف الأبجدية الرقمية بمسافة في كل سطر من الملف.

سيستبدل الأمر التالي جميع الأحرف الأبجدية الرقمية بمسافة في ملف قائمة الأمراض ملف.

$قطقائمة الأمراض
$ لكن 's / [A-Za-z0-9] // g'قائمة الأمراض

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأوامر أعلاه.

اذهب إلى الأعلى

47. استخدم '&' لطباعة سلسلة متطابقة

سيبحث الأمر التالي عن الكلمة التي تبدأ بـ 'L' ويستبدل النص بإلحاقه 'السلسلة المتطابقة هي - 'بالكلمة المتطابقة باستخدام الرمز' & '. هنا ، يتم استخدام 'p' لطباعة النص المعدل.

$سيد 's / ^ L / السلسلة المتطابقة هي - & / p'os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه.

اذهب إلى الأعلى

48. تبديل زوج من الكلمات في ملف

قم بإنشاء ملف نصي باسم بالطبع. txt بالمحتوى التالي الذي يحتوي على زوج من الكلمات في كل سطر.

بالطبع. txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

سيقوم الأمر التالي بتبديل زوج الكلمات في كل سطر من الملف ، بالطبع. txt .

$سيد / ([^] * ) * ([^] * ) / 2 1 / 'بالطبع. txt

انتاج:

سيظهر الإخراج التالي بعد تبديل زوج الكلمات في كل سطر.

اذهب إلى الأعلى

49. استخدم الأحرف الكبيرة في الحرف الأول من كل كلمة

سيأخذ الأمر `sed` التالي نص الإدخال من الأمر` echo` ويحول الحرف الأول من كل كلمة إلى حرف كبير.

$رما - طرد - قذف 'أحب برمجة باش' | سيد / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g '

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. تتم طباعة نص الإدخال ، أحب برمجة bash ، لأنني أحب Bash Programming بعد كتابة الكلمة الأولى بأحرف كبيرة.

اذهب إلى الأعلى

50. طباعة أرقام الأسطر من الملف

يستخدم الرمز '=' الأمر 'sed' لطباعة رقم السطر قبل كل سطر في الملف. سيطبع الأمر التالي محتوى os.txt ملف برقم السطر.

$سيد '='os.txt

انتاج:

سيظهر الإخراج التالي بعد تشغيل الأمر أعلاه. هناك أربعة أسطر في os.txt ملف. لذلك ، تتم طباعة رقم السطر قبل كل سطر من الملف.

اذهب إلى الأعلى

استنتاج:

يتم شرح الاستخدامات المختلفة للأمر `sed` في هذا البرنامج التعليمي باستخدام أمثلة بسيطة للغاية. يتم إنشاء مخرجات جميع البرامج النصية `sed` المذكورة هنا بشكل مؤقت وبقي محتوى الملف الأصلي دون تغيير. ولكن إذا كنت تريد يمكنك تعديل الملف الأصلي باستخدام الخيار –i أو –in-place من الأمر sed. إذا كنت مستخدم Linux جديدًا وترغب في معرفة الاستخدامات الأساسية لأمر `sed` لأداء أنواع مختلفة من مهام معالجة السلسلة ، فسيساعدك هذا البرنامج التعليمي. بعد قراءة هذا البرنامج التعليمي ، نأمل أن يحصل أي مستخدم على مفهوم واضح حول وظائف الأمر `sed`.

أسئلة مكررة

ما هو الأمر sed المستخدم؟

للأمر sed عدد من الاستخدامات المختلفة. ومع ذلك ، فإن الاستخدام الرئيسي هو استبدال الكلمات في ملف ، أو البحث والاستبدال.

إن الشيء العظيم في sed هو أنه يمكنك البحث عن كلمة في ملف واستبدالها ، لكنك لن تضطر أبدًا إلى فتح الملف - sed يفعل كل شيء من أجلك!

بالإضافة إلى ذلك ، يمكن استخدامه للحذف. كل ما عليك فعله هو كتابة الكلمة التي تريد البحث عنها أو استبدالها أو حذفها في sed ، وستقوم بإحضارها لك - يمكنك بعد ذلك اختيار استبدال تلك الكلمة أو حذف جميع آثار الكلمة من ملفك.

sed هي أداة رائعة لتكون قادرًا على استبدال أشياء مثل عناوين IP وأي شيء شديد الحساسية لا ترغب في وضعه في ملف. Sed هو أمر لا بد منه لأي مهندس برمجيات!

ما هو S و G في أمر sed؟

بعبارات أبسط ، فإن الدالة S التي يمكن استخدامها في sed تعني ببساطة 'بديل'. بعد كتابة حرف S ، يمكنك استبدال أي شيء تريده أو استبداله - فكل ما عليك هو كتابة S فقط لتحل محل التكرار الأول للكلمة في السطر.

لذلك ، إذا كانت لديك جملة أو سطر يذكرها أكثر من مرة ، فإن الدالة S ليست مثالية لأنها ستحل محل التكرار الأول فقط. يمكنك تحديد نمط لجعل S تستبدل الكلمات كل تكرارين أيضًا.

سيؤدي تحديد G في نهاية الأمر sed إلى إجراء بديل شامل (وهذا ما يرمز إليه حرف G). مع وضع ذلك في الاعتبار ، إذا حددت G فسيستبدل كل تكرار للكلمة التي اخترتها ، بدلاً من التكرار الأول الذي يحدثه حرف S.

كيف أقوم بتشغيل برنامج نصي Sed؟

يمكنك تشغيل برنامج نصي sed بعدة طرق ولكن الأكثر شيوعًا هو سطر الأوامر. هنا يمكنك فقط تحديد sed والملف الذي تريد استخدام الأمر فيه.

يتيح لك هذا استخدام sed على هذا الملف ، مما يتيح لك البحث والحذف والاستبدال حسب الحاجة.

يمكنك أيضًا استخدامه في برنامج نصي شيل ، وبهذه الطريقة يمكنك تمرير ما تريد إلى البرنامج النصي ، وسيقوم بتشغيل أمر البحث والاستبدال نيابة عنك. هذا مفيد لعدم الرغبة في تحديد بيانات شديدة الحساسية داخل البرنامج النصي ، لذلك بدلاً من ذلك ، يمكنك تمريرها كمتغير

ضع في اعتبارك أن هذا بالطبع متاح فقط على Linux ، ولذا ستحتاج إلى التأكد من أن لديك سطر أوامر Linux لتشغيل البرنامج النصي sed الخاص بك.