SED(1)

الاسم
sed - محرر دفق لترشيح وتحويل النصوص

موجز
sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
    [-l N] [--line-length=N] [-u] [--unbuffered]
    [-E] [-r] [--regexp-extended]
    [-e script] [--expression=script]
    [-f script-file] [--file=script-file]
    [script-if-no-other-script]
    [file...]

الوصف
Sed هو محرر دفق. يُستخدم محرر الدفق لإجراء تحويلات نصية أساسية على دفق مدخلات (ملف أو مدخلات من أنبوب). ومع أنه يشبه في بعض النواحي المحررات التي تسمح بالتحرير المبرمج (مثل ed)، إلا أن sed يعمل عبر تمريرة واحدة فقط على المدخلات، وبالتالي فهو أكثر كفاءة. لكن قدرة sed على ترشيح النصوص في الأنابيب هي ما يميزه بشكل خاص عن أنواع المحررات الأخرى.

-n، --quiet، --silent

    اقمع الطباعة الآلية لمساحة النمط

--debug

    شرح تنفيذ البرنامج

-e script، --expression=script

    أضف السكربت إلى الأوامر المراد تنفيذها

-f script-file، --file=script-file

    أضف محتويات ملف السكربت إلى الأوامر المراد تنفيذها

--follow-symlinks

    اتبع الروابط الرمزية عند المعالجة في المكان

-i[SUFFIX]، --in-place[=SUFFIX]

    حرر الملفات في مكانها (ينشئ نسخة احتياطية إذا قُدم SUFFIX)

-l N، --line-length=N

    حدد طول التفاف السطر المطلوب للأمر `l'

--posix

    عطل كل امتدادات GNU.

-E، -r، --regexp-extended

    استخدم التعبيرات النمطية الموسعة في السكربت (للتوافقية استخدم POSIX -E).

-s، --separate

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

--sandbox

    اعمل في وضع العزل (عطل أوامر e/r/w).

-u، --unbuffered

    حمّل كميات دنيا من البيانات من ملفات المدخلات وفرغ مخازن الإخراج بشكل متكرر

-z، --null-data

    افصل الأسطر بمحارف NUL

--help
    يعرض هذه المساعدة ويخرج

--version
    يعرض معلومات الإصدار ويخرج

إذا لم يُعطَ خيار -e أو --expression أو -f أو --file، فسيُعتبر المعطى الأول الذي ليس خياراً هو سكربت sed المراد تفسيره. جميع المعطيات المتبقية هي أسماء لملفات المدخلات؛ وإذا لم تُحدد ملفات مدخلات، فستُقرأ المدخلات القياسية.

الصفحة الرئيسية لبرنامج GNU sed: <https://www.gnu.org/software/sed/>. مساعدة عامة في استخدام برمجيات GNU: <https://www.gnu.org/gethelp/>. أرسل تقارير العلل بالبريد الإلكتروني إلى: <bug-sed@gnu.org>.

حُزم بواسطة دبيان حقوق النشر © 2022 مؤسسة البرمجيات الحرة (Free Software Foundation, Inc.). ترخيص GPLv3+: GNU GPL الإصدار 3 أو أحدث <https://gnu.org/licenses/gpl.html>. هذا برنامج حر: أنت حر في تغييره وإعادة توزيعه. لا يوجد أي ضمان، إلى المدى الذي يسمح به القانون.

موجز الأوامر
هذا مجرد موجز بسيط لأوامر sed ليكون تذكرة لمن يعرفون sed بالفعل؛ يجب الرجوع للوثائق الأخرى (مثل وثيقة texinfo) للحصول على أوصاف أشمل.

  “أوامر” بلا عنوان

: label
    وسم لأوامر b و t.

#comment
    يمتد التعليق حتى السطر الجديد التالي (أو نهاية جزء من سكربت -e).

}   قوس الإغلاق لكتلة { }.

  أوامر بلا عنوان أو بعنوان واحد

=   اطبع رقم السطر الحالي.

a \

text
    ألحق النص، بحيث يسبق كل سطر جديد مضمن شرطة مائلة خلفية.

i \

text
    أدرج النص، بحيث يسبق كل سطر جديد مضمن شرطة مائلة خلفية.

q [exit-code]
    أنهِ سكربت sed فوراً دون معالجة أي مدخلات أخرى، باستثناء أنه إذا لم تُعطل الطباعة الآلية، فستُطبع مساحة النمط الحالية. معطى رمز الخروج هو امتداد GNU.

Q [exit-code]
    أنهِ سكربت sed فوراً دون معالجة أي مدخلات أخرى. هذا امتداد GNU.

r filename
    ألحق نصاً مقروءاً من اسم_الملف.

R filename
    ألحق سطراً مقروءاً من اسم_الملف. تقرأ كل استدعاء للأمر سطراً واحداً من الملف. هذا امتداد GNU.

  الأوامر التي تقبل نطاقات العناوين

{   ابدأ كتلة من الأوامر (تنتهي بـ }).

b label
    تفرع إلى label؛ وإذا حُذف label، تفرع إلى نهاية السكربت.

c \

text
    استبدل الأسطر المحددة بـ النص، بحيث يسبق كل سطر جديد مضمن شرطة مائلة خلفية.

d   احذف مساحة النمط. ابدأ الدورة التالية.

D   إذا لم تحتوي مساحة النمط على سطر جديد، فابدأ دورة جديدة عادية كما لو نُفذ الأمر d. وبخلاف ذلك، احذف النص في مساحة النمط حتى أول سطر جديد، وأعد تشغيل الدورة بمساحة النمط الناتجة، دون قراءة سطر جديد من المدخلات.

h H انسخ/ألحق مساحة النمط بمساحة الاحتجاز.

g G انسخ/ألحق مساحة الاحتجاز بمساحة النمط.

l   اسرد السطر الحالي بشكل “لا لبس فيه بصرياً”.

l width
    اسرد السطر الحالي بشكل “لا لبس فيه بصرياً”، مع تقسيمه عند محارف width. هذا امتداد GNU.

n N اقرأ/ألحق السطر التالي من المدخلات في مساحة النمط.

p   اطبع مساحة النمط الحالية.

P   اطبع حتى أول سطر جديد مضمن في مساحة النمط الحالية.

s/regexp/replacement/
    حاول مطابقة regexp مع مساحة النمط. في حال النجاح، استبدل الجزء المطابق بـ replacement. قد يحتوي replacement على المحرف الخاص & للإشارة إلى الجزء الذي طُوبق من مساحة النمط، والهروب الخاص \1 حتى \9 للإشارة إلى التعبيرات الفرعية المطابقة المقابلة في regexp.

t label
    إذا أجرى s/// استبدالاً ناجحاً منذ قراءة آخر سطر مدخلات ومنذ آخر أمر t أو T، فتفرع إلى label؛ وإذا حُذف label، تفرع إلى نهاية السكربت.

T label
    إذا لم يُجرِ s/// أي استبدال ناجح منذ قراءة آخر سطر مدخلات ومنذ آخر أمر t أو T، فتفرع إلى label؛ وإذا حُذف label، تفرع إلى نهاية السكربت. هذا امتداد GNU.

w filename
    اكتب مساحة النمط الحالية في اسم_الملف.

W filename
    اكتب السطر الأول من مساحة النمط الحالية في اسم_الملف. هذا امتداد GNU.

x   بادل محتويات مساحتي الاحتجاز والنمط.

y/source/dest/
    نقل الحروف في مساحة النمط التي تظهر في source إلى المحرف المقابل في dest.

العناوين
يمكن إعطاء أوامر sed بدون عناوين، وفي هذه الحالة سيُنفذ الأمر لجميع أسطر المدخلات؛ أو بعنوان واحد، وفي هذه الحالة سيُنفذ الأمر فقط لأسطر المدخلات التي تطابق ذلك العنوان؛ أو بعنوانين، وفي هذه الحالة سيُنفذ الأمر لجميع أسطر المدخلات التي تطابق النطاق الشامل من الأسطر بدءاً من العنوان الأول وحتى العنوان الثاني. ثلاثة أمور تجب ملاحظتها بشأن نطاقات العناوين: الصيغة هي addr1,addr2 (أي أن العناوين تُفصل بفاصلة)؛ والسطر الذي طابقه addr1 سيُقبل دائماً، حتى لو اختار addr2 سطراً سابقاً؛ وإذا كان addr2 عبارة عن regexp، فلن يُختبر مقابل السطر الذي طابقه addr1.

بعد العنوان (أو نطاق العناوين)، وقبل الأمر، يمكن إدراج !، مما يحدد أن الأمر لن يُنفذ إلا إذا كان العنوان (أو نطاق العناوين) لا يطابق.

أنواع العناوين التالية مدعومة:

رقم طابق فقط رقم السطر المحدد (الذي يزداد تراكمياً عبر الملفات، ما لم يُحدد خيار -s في سطر الأوامر).

first~step
    طابق كل سطر بمقدار step بدءاً من السطر first. على سبيل المثال، “sed -n 1~2p” سيطبع جميع الأسطر ذات الأرقام الفردية في دفق المدخلات، والعنوان 2~5 سيطابق كل خامس سطر، بدءاً من الثاني. يمكن أن يكون first صفراً؛ في هذه الحالة، يعمل sed كما لو كان مساوياً لـ step. (هذا امتداد).

$   طابق السطر الأخير.

/regexp/
    طابق الأسطر التي تطابق التعبير النمطي regexp. تُجرى المطابقة على مساحة النمط الحالية، والتي يمكن تعديلها بأوامر مثل “s///”.

\cregexpc
    طابق الأسطر التي تطابق التعبير النمطي regexp. يمكن أن يكون c أي محرف.

يدعم GNU sed أيضًا بعض الصيغ الخاصة ذات العنوانين:

0,addr2
    ابدأ في حالة "تطابق العنوان الأول"، حتى يُعثر على addr2. هذا يشبه 1,addr2، باستثناء أنه إذا طابق addr2 أول سطر في المدخلات تماماً، فستكون الصيغة 0,addr2 في نهاية نطاقها، بينما ستظل الصيغة 1,addr2 في بداية نطاقها. يعمل هذا فقط عندما يكون addr2 تعبيراً نمطياً.

addr1,+N
    سيُطابق addr1 والأسطر N التي تلي addr1.

addr1,~N
    سيُطابق addr1 والأسطر التي تلي addr1 حتى السطر التالي الذي يكون رقم سطر مدخلاته مضاعفاً للعدد N.

التعبيرات النمطية
ينبغي دعم POSIX.2 BREs، لكنها ليست مدعومة بالكامل بسبب مشاكل الأداء. التسلسل \n في التعبير النمطي يطابق محرف السطر الجديد، وبالمثل لـ \a و \t وتسلسلات أخرى. يحول الخيار -E لاستخدام التعبيرات النمطية الموسعة بدلاً منها؛ وهي مدعومة لسنوات في GNU sed، وهي الآن مدرجة في POSIX.

العلل

أرسل تقارير العلل بالبريد الإلكتروني إلى bug-sed@gnu.org. وأيضًا، يرجى تضمين مخرجات “sed --version” في متن تقريرك إذا أمكن.

المؤلف
كتبه Jay Fenlason، و Tom Lord، و Ken Pizzini، و Paolo Bonzini، و Jim Meyering، و Assaf Gordon.

بُني برنامج sed هذا مع دعم SELinux. نظام SELinux معطل في هذا النظام.

الصفحة الرئيسية لبرنامج GNU sed: <https://www.gnu.org/software/sed/>. مساعدة عامة في استخدام برمجيات GNU: <https://www.gnu.org/gethelp/>. أرسل تقارير العلل بالبريد الإلكتروني إلى: <bug-sed@gnu.org>.

انظر أيضًا
awk(1)، ed(1)، grep(1)، tr(1)، perlre(1)، sed.info، وأي من الكتب المتنوعة حول sed، الأسئلة الشائعة حول sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt)، وموقع http://sed.sf.net/grabbag/.

تُحفظ الوثائق الكاملة لـ sed كدليل Texinfo. إذا كان برنامجا info و sed مثبتين بشكل صحيح في نظامك، فإن الأمر

    info sed

سيتيح لك الوصول إلى الدليل الكامل.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.