كيفية استبدال سلسلة في ملف في Bash

How Replace String File Bash



بصفتك مبرمجًا ، قد تحتاج إلى العمل مع أنواع مختلفة من الملفات لتخزين البيانات بشكل مؤقت أو دائم. في بعض الأحيان ، قد تحتاج إلى استبدال جزء من الملف أو تعديل محتوى معين للملف. لاستبدال محتوى في ملف ، يجب عليك البحث عن سلسلة ملف معينة. ال لكن يتم استخدام الأمر لاستبدال أي سلسلة في ملف باستخدام برنامج نصي باش. يمكن استخدام هذا الأمر بطرق مختلفة لاستبدال محتوى ملف في bash. ال 'Awk يمكن أيضًا استخدام الأمر 'لاستبدال السلسلة في ملف. سيوضح لك هذا البرنامج التعليمي كيفية استبدال أي قيمة سلسلة من ملف باستخدام برنامج نصي bash. ملف نصي باسم Sales.txt بالمحتوى التالي لإظهار عمليات الاستبدال.

Sales.txt







التاريخ المبلغ المنطقة

01/01/2020 60000 دكا
10/02/2020 76000 الراجشاهي
21/03/2020 54000 خولنا
15/04/2020 78000 تشاندبور
17/05/2020 45000 بوجرا
02/06/2020 67000 كوميلا

استبدل String في ملف بالأمر `sed`

بناء الجملة الأساسي لملف سيد `الأمر لاستبدال سلسلة معينة في ملف معطى أدناه.



بناء الجملة



سيد -أنا 's / search_string / replace_string /'اسم الملف

يتم شرح كل جزء من بناء الجملة أعلاه أدناه.





'-أنا' يستخدم الخيار لتعديل محتوى الملف الأصلي بسلسلة الاستبدال إذا كانت سلسلة البحث موجودة في الملف.

'س' يشير إلى الأمر البديل.



'دالة البحث' يحتوي على قيمة السلسلة التي سيتم البحث عنها في الملف للاستبدال.

'replace_string' يحتوي على قيمة السلسلة التي سيتم استخدامها لاستبدال محتوى الملف الذي يطابق 'دالة البحث' القيمة.

'اسم الملف' يحتوي على اسم الملف حيث سيتم تطبيق البحث والاستبدال.

مثال 1: استبدل الملف بالأمر 'sed'

في النص التالي ، سيتم أخذ نص البحث والاستبدال من المستخدم. إذا كانت سلسلة البحث موجودة في 'Sales.txt' ، فسيتم استبدالها بسلسلة الاستبدال. هنا ، سيتم إجراء بحث حساس لحالة الأحرف.

#!/bin/bash

# تعيين اسم الملف
اسم الملف='Sales.txt'

# خذ سلسلة البحث
اقرأ -p 'أدخل سلسلة البحث:'بحث

# خذ سلسلة الاستبدال
اقرأ -p 'أدخل سلسلة الاستبدال:'يحل محل

لو [[ $ البحث !=' && استبدال $ !=' ]]؛من ثم
سيد -أنا 'س/$ البحث/استبدال $/ ' اسم الملف $
يكون

انتاج |

مثال 2: استبدل الملف بالأمر 'sed' بعلامة 'g' و 'i'

سيعمل البرنامج النصي التالي مثل المثال السابق ، ولكن سيتم البحث في سلسلة البحث عالميًا عن العلامة 'g' ، وسيتم إجراء البحث غير الحساس لحالة الأحرف للعلامة 'i'.

#!/bin/bash

# خذ سلسلة البحث
اقرأ -p 'أدخل سلسلة البحث:'بحث

# خذ سلسلة الاستبدال
اقرأ -p 'أدخل سلسلة الاستبدال:'يحل محل

لو [[ $ البحث !=' && استبدال $ !=' ]]؛من ثم
سيد -أنا 'س/$ البحث/استبدال $/يعطى' 1 دولار
يكون

انتاج |

مثال 3: استبدل الملف بالأمر 'sed' ونمط مطابقة الأرقام

سيبحث البرنامج النصي التالي عن كل المحتوى الرقمي في الملف وسيحل محل المحتوى بإضافة ملحق '$' رمز في بداية الأرقام.

#!/bin/bash

# تحقق من قيمة وسيطة سطر الأوامر موجودة أم لا
لو [ 1 دولار !=' ]؛من ثم
# ابحث في كل السلاسل التي تحتوي على أرقام وأضف $
سيد -أنا 's / b [0-9] {5 } b / $ & / g' 1 دولار
يكون

انتاج |

استبدل String في ملف بالأمر `awk`

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

مثال 4: استبدل الملف بالأمر 'awk'

سيقوم البرنامج النصي التالي بتخزين المحتوى المحدث في ملف temp.txt الملف الذي ستتم إعادة تسميته بواسطة الملف الأصلي.

#!/bin/bash

# تحقق من قيمة وسيطة سطر الأوامر موجودة أم لا
لو [ 1 دولار !=' ]؛من ثم
# البحث في كل سلسلة على أساس التاريخ
awk '{sub ('02 / 06/2020 ''، '12/06/2020')} 1' 1 دولار >temp.txt&& مtemp.txt1 دولار
يكون

انتاج |

استنتاج

أوضح لك هذا المقال كيفية استخدام البرامج النصية bash لاستبدال سلاسل معينة في ملف. يجب أن تصبح مهمة استبدال سلسلة في ملف أسهل بالنسبة لك بعد ممارسة الأمثلة المذكورة أعلاه.