Sed: تعلم البرمجة النصية للقذيفة باستخدام أمر Sed Terminal

Sed: تعلم البرمجة النصية للقذيفة باستخدام أمر Sed Terminal

Sed: تعلم البرمجة النصية للقذيفة باستخدام أمر Sed Terminal

الأمر "sed" في أنظمة التشغيل الحرة من نوع GNU / Linux ، يعد أمرًا شديد التنوع ، لأنه بدوره يعتبر محرر نصوص موجه إلى "التدفق" بدلاً من "التفاعلي" مثل المحرر النموذجينظرًا لأنه يقبل ملفًا أو إدخالًا قياسيًا كمدخلات ، فإنه يعالج كل سطر ويتم إرسال النتيجة إلى الإخراج القياسي. ذلك بالقول، يسمح لنا SED (Stream EDitor) بتعديل محتوى الأسطر المختلفة للملف بناءً على سلسلة من الأوامر أو ملف أوامر.

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

مقدمة إلى الأمر "sed"

بالفعل في المنشورات السابقة الأخرى في DesdeLinux لقد تحدثنا وأظهرنا أمثلة حول استخدام الأمر المذكور، مثل: كيفية حذف أسطر معينة من ملف ... y مع المحطة الطرفية: استخدام التعبيرات العادية II: البدائل، لذلك هذه المرة سنرى بشكل مباشر أمثلة أكثر تقدمًا وعملية لاستخدامها.

في الأساس ، يحتوي الأمر «sed» على النحو التالي:

sed comandos_sed archivo

حيث "Command_sed" يتوافق مع واحد أو أكثر من المواصفات حول ما يجب فعله مع الأسطر المقروءة منها "أرشيف".

الاستخدام الأكثر شمولاً يترك لنا بناء الجملة التالي:

sed [-ns] '[direccion] instruccion argumentos'

حيث:

تنسيق استخدام أوامر SED

أمثلة عملية

سرد الملفات / المجلدات في مسار

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

ls -l | awk '{ print $NF }' | sed 1d

على سبيل المثال:

مثال 1: أمر SED - برمجة شل

هذا المتغير الآخر الذي يستخدم الأمر "sed" مفيد للغاية:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

مثال 4: أمر SED لـ Shell Scripting

قم بإنشاء تسلسل رقمي

اعرض على الشاشة أو احفظ في ملف تسلسل رقمي (أو أي إدخال آخر) تم إنشاؤه ولكن بطريقة أفقية (خطية) وليست رأسية يمكن قراءتها لاحقًا لعمليات أخرى.

seq 100|tr '\n' ' '|sed 's, $,\n,g'

مثال 2: أمر SED لـ Shell Scripting

يمكن عمل نفس المثال من خلال الجمع بين الأمر «العطش " مع "برنتف" كما هو مبين أدناه:

printf '%s ' {1..100}|sed 's/ $/\n/'

مثال 3: أمر SED لـ Shell Scripting

حذف الملفات مع الاستثناءات

غربلة مسار نظام الملفات بحثًا عن أنماط من الملفات لاستبعادها ثم حذف باقي المحتوى. مفيد جدًا للتنظيف الدقيق والدقيق.

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

مثال 5: أمر SED لـ Shell_Scripting

قم بإنشاء عنوان MAC افتراضي

يمكن أن تكون هذه الخطوة مفيدة لأمن الكمبيوتر أو مهام الحماية عند تصفح المواقع الخطرة أو تنفيذ مهام القرصنة.

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

يمكن تحقيق نفس التأثير باستخدام الأمر "sed" بالتزامن مع أوامر أخرى ، كما هو موضح أدناه:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1

على سبيل المثال:

مثال 7: أمر SED لـ Shell Scripting

قم بتغيير موجه الوحدة الطرفية مؤقتًا

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

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

مثال 8. أمر SED لـ Shell Scripting

إدارة إخراج الأمر "ps"

أمر أمر عملي للغاية للسماح بتنسيق إخراج الأمر «ps» ، أي ما يتم الحصول عليه من Terminal Process Manager.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

على سبيل المثال:

مثال 9: أمر SED لـ Shell Scripting

يمكن تطبيق ذلك على العمليات وفقًا للنسبة المئوية للذاكرة المستهلكة:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

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

في المنشور التالي على Shell Scripting سنستكشف أوامر أخرى.

إذا كنت تريد معرفة المزيد عن الأمر "sed" فقم بزيارة هذا الرابط "البرنامج التعليمي ودليل موجز لنظامي التشغيل Unix و Linux"أو"الاستخدام الأساسي»وإذا كنت تريد معرفة المزيد حول البرمجة النصية في شل في مدونتنا الخاصة، يمكنك إلقاء نظرة على إصداراتنا الأخرى حول هذا الموضوع ، من خلال النقر هنا: البرمجة النصية DesdeLinux.


اترك تعليقك

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

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.