كيف تدخل خطًا بعد المباراة باستخدام `sed`؟

How Insert Line After Match Using Sed



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

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







أدخل سطرًا في السلسلة

يمكن إدراج سطر جديد بعد أي قيمة سلسلة باستخدام الأمر sed إذا كان النمط المحدد في الأمر يتطابق مع أي جزء من قيمة السلسلة.



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



مثال 1: أدخل سطرًا في سلسلة بعد العثور على تطابق

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





هنا ، يتم استخدام الحرف & لإدراج السطر بعد السلسلة.

$رما - طرد - قذف 'أنا أحب البرمجة.' | سيد 's / inng / & هل تحب البرمجة؟ /'

يوضح الإخراج التالي أن inng غير موجود في السلسلة ولم يتم إدراج أي سطر بعد السلسلة.




الأمر التالي سيبحث جي. في السلسلة ، أحب البرمجة وهي موجودة في السلسلة.

$رما - طرد - قذف 'أنا أحب البرمجة.' | سيد 's / ing ./& هل تحب البرمجة؟ /'

يوضح الإخراج التالي إضافة السطر الجديد بعد السلسلة.

أدخل سطرًا في ملف

هناك طريقتان لإدراج سطر بعد العثور على تطابق في ملف مذكور أدناه. عند استخدام الأمر sed بدون الخيار -i ، سيبقى محتوى الملف دون تغيير ، وسيُظهر الناتج محتوى الملف بالسطر الجديد المُدرج. يجب عليك استخدام الخيار -i مع الأمر sed لإدراج السطر الجديد بشكل دائم في الملف إذا كان النمط المطابق موجودًا في الملف.

أ. استخدام a في الأمر sed

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

ب. استخدام i في الأمر sed

يمكن استخدام i في نمط البحث لأمر sed لإدراج سطر واحد أو أكثر في ملف قبل السطر الذي يتطابق فيه نمط البحث.

أدخل السطر (الخطوط) في ملف بناءً على النمط:

قم بإنشاء ملف نصي محدد بعلامات جدولة مسمى products.txt مع المحتوى التالي لإظهار استخدامات العلامة أعلاه في الأمر sed.

products.txt

اسم الهوية

01 كريمة خفق

02 مسحوق الكاكاو

03 سكر

04 بيض

05 طحين

مثال 2: أدخل سطرًا بعد رقم سطر معين باستخدام a

توضح الأوامر التالية كيف يمكن إضافة سطر جديد ، بعد رقم سطر معين من ملف products.txt ، بناءً على النمط المستخدم في الأمر sed.

هنا ، سيعرض الأمر الأول المحتوى الحالي للملف. سيُلحق الأمر sed النص ، b01 Baking powder ، بعد أول سطرين من الملف. يتم استخدام الأمر الأخير للتحقق من تغيير محتوى الملف أم لا.

$قطproducts.txt

$سيد '2 أ b01 t بيكنج بودر'products.txt

$قطproducts.txt

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

مثال 3: أدخل سطرًا بعد السطر الأخير باستخدام a

يوضح الأمر التالي طريقة إلحاق سطر جديد بعد السطر الأخير من الملف. يعرض الأمر الأول والأخير المحتوى الحالي للملف قبل وبعد تنفيذ الأمر sed. يُستخدم الرمز $ في نمط الأمر sed للإشارة إلى السطر الأخير من الملف.

$قطproducts.txt

$سيد '$ a b01 t بيكنج بودر'products.txt

$قطproducts.txt

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

مثال 4: أدخل سطرًا في أي مكان في الملف بعد مطابقة النمط باستخدام ملف

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

$قطproducts.txt

$سيد '/ ^ s01.*/a b01 t بيكنج بودر'products.txt

$قطproducts.txt

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


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

$قطproducts.txt

$سيد '/ مسحوق $ / a b01 t بيكنج بودر'products.txt

$قطproducts.txt

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

مثال 5: أدخل عدة أسطر بعد نمط المطابقة باستخدام ملف

يوضح الأمر sed التالي طريقة إضافة عدة أسطر داخل محتوى الملف بناءً على نمط المطابقة.

هنا ، سيتم إضافة سطرين بعد السطر الثالث ، وفقًا للنمط.

$قطproducts.txt

$سيد '/ ^ [a-c] / a b01 t بيكنج بودر nb02 t صودا الخبزproducts.txt

$قطproducts.txt

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

مثال 6: أدخل خطًا بعد مطابقة النمط باستخدام حرف I

$قطproducts.txt

$سيد '/ كريم / أنا b01 t بيكنج بودر'products.txt

$قطproducts.txt

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

مثال 7: أدخل خطًا بشكل دائم بعد نمط المطابقة باستخدام الخيار -i

يوضح الأمر sed التالي كيفية تغيير محتوى الملف بشكل دائم. يتم استخدام الخيار i مع الأمر sed لإدراج سطر جديد في الملف بناءً على النمط.

$قطproducts.txt

$سيد -أنا '/ e $ / a g01 t السمنة'products.txt

$قطproducts.txt

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

استنتاج:

تم عرض طرق إدراج سطرين أو أكثر في ملف باستخدام الأمر sed مع النمط في هذا البرنامج التعليمي لمساعدة القارئ على تطبيق هذا الأمر لإدراج الأسطر في الملف بشكل مؤقت أو دائم بناءً على النمط.