دروس تقنية ومقالات

كيفية استخدام Sed في Linux لمهام Shell الأساسية

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

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

اقرأ أيضا:أفضل 5 توزيعات Linux-Libre من أجل أمان أفضل

ما هي فلسفة يونيكس؟

فلسفة UNIX هي فكرة أن البرنامج يجب أن يقوم بمهمة واحدة فقط ويقوم بها بشكل جيد. يشجعك على كتابة برامج بسيطة يمكنك إعادة استخدامها لوظائف مختلفة بدلاً من إنشاء برامج معقدة لا يمكنك إعادة استخدامها في مهام أخرى.

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

أساسيات Sed 03 نموذج Cat 2 كيفية استخدام Sed في Linux لمهام Shell الأساسية

تتيح لك فلسفة UNIX استخدام البرنامج مع أدوات النظام الأخرى. في المقابل ، ينشئ هذا الأسلوب في النهاية واجهة واحدة لنظامك يمكنك تعلمها مرة واحدة وإعادة استخدامها في سياقات مختلفة.

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

أساسيات Sed 04 مثال على أنبوب Grep كيفية استخدام Sed في Linux لمهام Shell الأساسية

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

أساسيات Sed 05 عيّنة أنابيب أقل كيفية استخدام Sed في Linux لمهام Shell الأساسية

كيف يعمل SED؟

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

قد يهمك أيضا:  تنزيل خلفيات 4K و HD أيفون مجانًا 2022

على الرغم من ذلك ، تظل sed أداة قوية. على سبيل المثال ، يمكنك تنفيذ السطر التالي لقراءة إخراج printf أمر:

printf "hellonmaketecheasiernworldn" | sed n
أساسيات Sed 08 أمر قراءة Sed

أساسيات استخدام Sed

بمعرفة هذا ، من السهل جدًا استخدام sed للمهام الأساسية. ضع في اعتبارك المثال التالي:

أساسيات Sed 09 قراءة الملف

في هذا استخدمت ملف n أمر لطباعة محتويات ملف “hello”.

1. اختيار وتقسيم تيارات النص

بالإضافة إلى ذلك ، يمكنك أيضًا إخبار sed بتعديل تدفق النص هذا. على سبيل المثال ، يمكنك استخدام ملحق 2q أمر لإخباره بطباعة أول سطرين فقط من ملف “hello”:

أساسيات Sed 10 اطبع الأسطر الأولى 1

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

أساسيات Sed 11 خطوط مركزية للطباعة

في المثال أعلاه ، استخدمت sed لطباعة السطرين الثالث والرابع من ملف “hello”. يمكنك أيضا استخدام نفس الشيء p أمر لطباعة سطور غير متجاورة في ملفك النصي. خذ بعين الاعتبار المثال التالي:

أساسيات Sed 12 اطبع صفوفًا غير متجاورة

بهذا ، أقول لـ sed أن تطبع فقط السطر الأول والرابع من ملف “hello”. يمكن أن يكون هذا مفيدًا إذا كنت تريد دمج عدة سطور من تدفقات مختلفة في ملف واحد.

على سبيل المثال ، يمكنك استخدام sed مع الامتداد > العامل لكتابة الدفق المعدل إلى ملف.

sed -n 1~4p hello.txt > welcome.txt
أساسيات Sed 13 اكتب سطورًا غير متجاورة إلى ملف

2. حذف النص

وظيفة أخرى رائعة لـ sed هي حذف النص في الدفق. بخلاف الطباعة ، يتيح لك هذا تحديد سطور النص التي تريد حذفها من الدفق.

على سبيل المثال ، استخدمت ملف d أمر لحذف السطر الثاني والخامس من ملف hello.

أساسيات Sed 14 حذف الأسطر

ومن مزايا استخدامه بدلاً من p الأمر هو أنه يسمح لك بحذف الصف الذي لا تريده فقط. يكون هذا مفيدًا إذا كنت تريد تنظيف ملف كبير أو تقليم الإخراج لإظهار المعلومات التي تحتاجها فقط.

3. إضافة نص جديد

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

sed -n 2p hello.txt | sed a "this is a new line"
أساسيات Sed 15 إضافة خطوط

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

sed -n 2p hello.txt | sed rwelcome.txt
أساسيات Sed 16 إلحاق ملف بسطر

4. استبدال النص ومعالجة التدفق

الاستخدام الرائع لـ sed هو تعديل التدفقات الحالية. إنه عندما تأخذ دفق إدخال النص وتستخدم الوظائف المضمنة في sed لتعديل محتوى الدفق.

قد يهمك أيضا:  كيفية إنشاء NFT وبيعها مجانًا

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

printf "hellonmaketecheasiernworldn" | sed s/world/website/
أساسيات Sed 17 تحرير إخراج الأمر

في هذا المثال ، استخدمت ملف s أمر لاستبدال كلمة “world” بكلمة “website”. على عكس الأوامر السابقة ، يستخدم هذا الأمر صيغة محددة للعمل بشكل صحيح.

مع العلم بهذا الشكل العام لـ s الأمر يشبه هذا:

s/[regex]/(string)/{options}
  • يشير العمود الأول إلى أن هذا أمر تجاوز. في معظم الحالات ، تحتاج فقط إلى استخدام ملف s الأمر لتحرير دفق نصي.
  • يشير العمود الثاني إلى الكلمة التي تريد استبدالها باستخدام التعبيرات الهيكلية العادية. إنها طريقة لوصف الكلمات والقواعد باستخدام القواعد العامة. على سبيل المثال ، يمكنك وصف الكلمات “برينس” و “أمير” و “بريمير” بالكتابة pri[n,m]...
  • يصف العمود الثالث الكلمة التي تريد أن تكون السلسلة القديمة. على عكس العمود السابق ، لا يستخدم هذا العمود التعبيرات العادية. بدلاً من ذلك ، يمكنك استخدام نص عادي لوصف كلمتك الجديدة.
  • يخبر العمود الأخير sed أن يطبق أي خيارات إضافية تحتاجها للاستبدال. في هذا ، العلامة الأكثر شيوعًا التي قد ترغب في استخدامها هي g. يشير هذا إلى أن الأمر سيستبدل كل مثيل من regex بالسلسلة الجديدة.

5. استخدام استبدال النص مع الملفات

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

على سبيل المثال ، يمكنك استخدام ملحق s الأمر بملف نصي عن طريق إضافة اسم الملف إلى نهاية الأمر:

sed s/hello/welcome/ hello.txt
أساسيات Sed 18 تعديل كلمة واحدة للملف

في هذا أقول لـ sed قراءة ملف “hello” واستبدال المثال الأول من كلمة “hello” بكلمة “welcome”. يمكنني بعد ذلك القيام بذلك لكل مثيل لكلمة “hello” في الملف عن طريق إضافة الامتداد g اختيار:

sed s/hello/welcome/g hello.txt
أساسيات Sed 19 تحرير ملف كل الكلمات

أسئلة مكررة

هل من الممكن كتابة تغييرات على ملف باستخدام sed؟

نعم! إلى جانب استخدام عوامل تشغيل الملفات ، من الممكن استخدام sed لكتابة أي دفق نصي معدل إلى ملف مباشرةً. للقيام بذلك ، يمكنك إما استخدام sed مع ملف -i الإبلاغ عن أو استخدام w أمر لكتابة الدفق إلى ملف.

قد يهمك أيضا:  كيفية استخدام جوجل Authenticator على ويندوز

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

أحصل على خطأ “لم يكتمل” في كل مرة أستخدم فيها sed. هل التثبيت معطل؟

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

على سبيل المثال ، سيؤدي تشغيل الأمر التالي إلى ظهور خطأ “غير مكتمل”: sed s/hello/welcome back/g hello.txt.

يمكنك حل هذه المشكلة عن طريق إضافة حرف الهروب “” قبل مسافاتك. هذا حرف خاص يخبر sed بتضمين المسافة عند البحث عن نص أو استبداله.

مع ذلك ، يبدو الإصدار الصحيح من الأمر أعلاه كما يلي: sed s/hello/welcome back/g hello.txt.

بالإضافة إلى “g” ، هل هناك أي إشارات أخرى يمكنني استخدامها مع الأمر “s”؟

نعم! بعيدا، بمعزل، على حد gيمكنك أيضًا استخدام ملف p علم لإخبار sed بعرض جميع الخطوط المتغيرة.

علم آخر يمكنك استخدامه مع s هو e. يتيح لك هذا تشغيل أوامر الصدف كلما استبدلت sed كلمة. على سبيل المثال ، يمكنك تشغيل الأمر التالي للتشغيل touch في كل مرة يجد فيها كلمة “hello” في الملف: sed s/hello /touch /e hello.txt.

أخيرًا ، يمكنك أيضًا استخدام ملف i علم لإخبار sed بأنه غير حساس لحالة الأحرف عند البحث عن التطابقات. هذا مفيد إذا كنت تريد مطابقة نفس الكلمة ولكن مع أنماط حالة مختلفة. على سبيل المثال ، سيستبدل الأمر التالي كلمة “hello” بكلمة “welcome” بغض النظر عن حالتها: sed s/HELLO/welcome/i hello.txt.

Content Protection By Dmca.com

محمد النبراوي

🧰 مستشار مالي ، محلل نظم ، 🛠️ صانع محتوى ، 🌐 مترجم. أحب 💾 التكنولوجيا والعلوم ، وشغوف ✍️ بالكتابة.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

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

أنت تستخدم إضافة Adblock

رجاء تعطيل مانع الإعلانات