table of contents
| SED(1) | أوامر المستخدم | 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
إذا لم يُعطَ خيار -e أو --expression أو -f أو --file، فسيُعتبر المعطى الأول الذي ليس خياراً هو سكربت sed المراد تفسيره. جميع المعطيات المتبقية هي أسماء لملفات المدخلات؛ وإذا لم تُحدد ملفات مدخلات، فستُقرأ المدخلات القياسية.
الصفحة الرئيسية لبرنامج GNU sed: <https://www.gnu.org/software/sed/>. مساعدة عامة في استخدام برمجيات GNU: <https://www.gnu.org/gethelp/>. أرسل تقارير العلل بالبريد الإلكتروني إلى: <bug-sed@gnu.org>.
موجز الأوامر¶
هذا مجرد موجز بسيط لأوامر 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>.
حقوق النسخ¶
حقوق
النشر © 2026
مؤسسة
البرمجيات
الحرة (Free Software Foundation, Inc.).
ترخيص GPLv3+: GNU GPL
الإصدار 3 أو
أحدث. <https://gnu.org/licenses/gpl.html>.
هذا برنامج
حر: أنت حر في
تغييره
وإعادة
توزيعه. لا
يوجد أي
ضمان، إلى
المدى الذي
يسمح به
القانون.
انظر أيضًا¶
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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| أبريل 2026 | GNU sed 4.10 |