إزالة الحرف الأول من سلسلة نصية هي مهمة شائعة في برمجة Bash. تستعرض هذه المقالة ثلاث طرق فعالة لتحقيق ذلك: باستخدام sed
و cut
و توسيع السلاسل النصية المضمن في Bash. كل طريقة تقدم مزايا مختلفة، مما يسمح لك باختيار التقنية الأنسب لسياقك المحدد.
جدول المحتويات
- استخدام
sed
لإزالة الحرف الأول - استخدام
cut
لإزالة الحرف الأول - استخدام توسيع السلاسل النصية لإزالة الحرف الأول
استخدام sed
لإزالة الحرف الأول
يوفر الأمر sed
، وهو محرر تيار قوي، طريقة مرنة لمعالجة السلاسل النصية. يمكننا إزالة الحرف الأول باستخدام أمر استبدال يستبدل الحرف الأول بفارغ.
string="Hello World"
new_string=$(echo "$string" | sed 's/^.//')
echo "$new_string" # الإخراج: ello World
هنا، ^
يطابق بداية السطر، و .
يطابق أي حرف واحد. s/^.//
يستبدل الحرف المطابق بسلسلة فارغة. يقوم الأمر الفرعي $(...)
بالتقاط الإخراج وتعيينه إلى new_string
.
استخدام cut
لإزالة الحرف الأول
يمكن أيضًا استخدام الأمر cut
، المستخدم بشكل أساسي لاستخراج الأقسام من الملفات، لإزالة الحرف الأول من سلسلة نصية.
string="Hello World"
new_string=$(echo "$string" | cut -c 2-)
echo "$new_string" # الإخراج: ello World
cut -c 2-
يختار الأحرف من الموضع الثاني (الفهرس 2) إلى النهاية. ثم يتم التقاط الإخراج وتخزينه في new_string
. هذه الطريقة موجزة وسهلة الفهم.
استخدام توسيع السلاسل النصية لإزالة الحرف الأول
يوفر Bash توسيع السلاسل النصية المضمن، والذي غالبًا ما يكون الطريقة الأكثر كفاءة وقابلية للقراءة لهذه المهمة.
string="Hello World"
new_string="${string:1}"
echo "$new_string" # الإخراج: ello World
${string:1}
يستخرج سلسلة فرعية تبدأ من الحرف الثاني (الفهرس 1، حيث يبدأ الفهرسة من 0). هذه المعالجة المباشرة فعالة وتحسن من قابلية قراءة نصوص Bash الخاصة بك. تُفضل هذه الطريقة بشكل عام لسرعتها ووضوحها داخل Bash.
الخلاصة:
تزيل الطرق الثلاث جميعها الحرف الأول بفعالية. يُعد توسيع السلاسل النصية (${string:1}
) غالبًا النهج الموصى به نظرًا لبساطته وكفاءته وقابلية قراءته داخل نصوص Bash. ومع ذلك، فإن sed
و cut
يوفران مرونة أكبر للمعالجات الأكثر تعقيدًا للسلاسل النصية. يعتمد الاختيار الأمثل على احتياجاتك المحددة وأسلوب الترميز الخاص بك. تذكر دائمًا وضع علامات اقتباس حول متغيراتك لمنع المشكلات المحتملة مع تقسيم الكلمات والامتدادات.