إزالة الأحرف من String في Bash

Removing Characters From String Bash



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

تتناول المقالة كيفية إجراء ما يلي:







  • إزالة الحرف من السلسلة باستخدام sed
  • إزالة الحرف من السلسلة باستخدام awk
  • إزالة الحرف من السلسلة باستخدام القص
  • إزالة الحرف من السلسلة باستخدام tr

تم تنفيذ الأوامر الموضحة في هذه المقالة في Ubuntu 20.04 Focal Fossa. يمكن أيضًا تنفيذ نفس الأوامر على توزيعات Linux الأخرى التي تتوفر بها الأدوات المذكورة أعلاه. سنستخدم تطبيق Terminal الافتراضي لتشغيل الأوامر. يمكنك الوصول إلى تطبيق Terminal باستخدام اختصار لوحة المفاتيح Ctrl + Alt + T.



إزالة الأحرف من السلسلة باستخدام sed

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



لأغراض التوضيح ، سنستخدم سلسلة نصية ثم نوجهها إلى الأمر sed.





إزالة حرف معين من السلسلة

باستخدام sed ، يمكنك إزالة حرف معين من سلسلة. على سبيل المثال ، لإزالة h من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 'ش//'

سيؤدي هذا فقط إلى إزالة التكرار الأول لـ 'h' في السلسلة.
قم بإزالة حرف معين من String1
لإزالة جميع تكرارات 'h' من السلسلة ، استخدم الأمر التالي:



$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 's / h // g'

أين ز لتقف على العالمية. سيزيل كل تكرارات 'h' في السلسلة.
قم بإزالة حرف معين من String2

إزالة الحرف الأول من السلسلة

لإزالة الحرف الأول من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 's / ^.//' ملف

حيث (.) تطابق تمامًا حرفًا واحدًا و (^) تطابق أي حرف في بداية السلسلة.
إزالة الحرف الأول من السلسلة

إزالة الحرف الأخير من السلسلة

لإزالة الحرف الأخير من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 's /.$//'

أين ( . ) يطابق تمامًا حرفًا واحدًا ويطابق ($) أي حرف في نهاية السلسلة.
إزالة الحرف الأخير من السلسلة

إزالة الحرف الأول والأخير من السلسلة

لإزالة الحرف الأول والأخير من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | سيد 's / ^.//؛ s /.$//'

إزالة الحرف الأول والأخير من السلسلة

إزالة الأحرف من السلسلة باستخدام awk

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

لأغراض العرض ، سنستخدم سلسلة نصية ثم نوجهها إلى الأمر awk.

إزالة الحرف الأول من سلسلة

لإزالة الحرف الأول من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | awk '{print substr ($ 0، 2)}'

حيث ($ 0) هي السلسلة المستهدفة بالكامل و (2) هي موضع بداية الحرف. يزيل الأمر أعلاه الحرف الأول ، 'h' ، رقم الحرف '1' ، ويعيد السلسلة الهدف التي تبدأ بالحرف الثاني ، 'e'.
إزالة الحرف الأول من سلسلة

إزالة أول حرفين من السلسلة

يمكنك أيضًا إزالة عدد معين من الأحرف من بداية السلسلة. على سبيل المثال ، لإزالة أول حرفين من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | awk '{print substr ($ 0، 3)}'

سيزيل الأمر أعلاه أول حرفين ، 'هو' أو رقم الحرف '1 و 2' ويعيد السلسلة الهدف التي تبدأ برقم الحرف '3' أو 'l'.
إزالة أول حرفين من السلسلة

إزالة الحرف الأخير من السلسلة

لإزالة الحرف الأخير من مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | awk '{print substr ($ 0، 1، length ($ 0) -1)}'

أين الطول (0 دولار) -1 يعني خصم 1 'من إجمالي طول الأحرف.

سيطبع الأمر أعلاه السلسلة التي تبدأ برقم الحرف ' 1 ' يصل إلى الطول (0 دولار) -1 لتجريد الشخصية الأخيرة.

يوجد ' 19 '(بما في ذلك المسافات) في السلسلة أعلاه. سيعمل الأمر عن طريق طباعة جميع الأحرف ، بدءًا من الحرف ' 1 'وحتى الحرف' 18 ، 'أثناء إزالة الحرف الأخير' 19 '.

rmv سلسلة سحر الماضي frm

إزالة آخر حرفين من السلسلة

لإزالة آخر حرفين من مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | awk '{print substr ($ 0، 1، length ($ 0) -2)}'

أين الطول (0 دولار) -2 يعني خصم 2 'من إجمالي طول الأحرف.

سيطبع الأمر أعلاه السلسلة ، بدءًا من رقم الحرف ' 1 'وما يصل إلى رقم الحرف' الطول (0 دولار) -2 ، 'لإزالة آخر حرفين في السلسلة.
إزالة آخر حرفين من السلسلة

قم بإزالة كل من الحرف الأول والأخير من السلسلة

لإزالة الحرفين الأول والأخير من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | awk '{print substr ($ 0، 2، length ($ 0) - 2)}'

أين الطول (0 دولار) -2 يعني خصم 2 'من إجمالي طول الأحرف.

سيطبع الأمر أعلاه السلسلة ، بدءًا من رقم الحرف ' 2 'حتى رقم الحرف' الطول (0 دولار) -2 ، 'لإزالة الحرف الأول والأخير.

قم بإزالة كل من الحرف الأول والأخير من السلسلة

إزالة الحرف من سلسلة باستخدام القص

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

لأغراض العرض ، سنستخدم سلسلة نصية ثم نوجهها إلى أمر القطع.

إزالة الحرف الأول من السلسلة

لإزالة الحرف الأول من السلسلة ، مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | يقطع 2-

سيقوم هذا الأمر بطباعة السلسلة ، بدءًا من الحرف الثاني ، أثناء إزالة الحرف الأول.
rmv قطع -c

إزالة أول أربعة أحرف من السلسلة

لإزالة الأحرف الأربعة الأولى من السلسلة مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | يقطع 5-

سيقوم هذا الأمر بطباعة السلسلة ، بدءًا من الحرف الخامس ، أثناء إزالة الأحرف الأربعة الأولى.
إزالة أول أربعة أحرف من السلسلة

سلسلة الطباعة بين الحرفين الثاني والخامس

لطباعة السلسلة مرحبا كيف حالك؟ بين الحرفين الثاني والخامس و سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | يقطع 2-5

سيقوم هذا الأمر بطباعة السلسلة ، بدءًا من الحرف الثاني وحتى الحرف الخامس ، مع إزالة أحرف البداية والنهاية المتبقية.
rmv 2 و 5 c2

إزالة الحرف الأخير من السلسلة

لإزالة الحرف الأخير من السلسلة مرحبا كيف حالك؟ استخدم ال يقطع الأمر مع مراجعة ، على النحو التالي:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | مراجعة | يقطع -c2- | مراجعة

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

قم بإزالة الأحرف الأربعة الأخيرة من السلسلة

لإزالة الأحرف الأربعة الأخيرة من السطر مرحبا كيف حالك؟ سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | مراجعة | يقطع -c5- | مراجعة

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

إزالة الحرف الأول والأخير من السلسلة

لإزالة الحرف الأول والأخير من السلسلة مرحبا كيف حالك؟ استخدم ال يقطع الأمر مع مراجعة ، على النحو التالي:

$رما - طرد - قذف 'مرحبا بالعالم!' | يقطع -c2- | مراجعة | يقطع -c2- |مراجعة

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

إزالة الحرف من سلسلة باستخدام tr

يتم استخدام الأمر tr (اختصار لـ translate) لترجمة الأحرف والضغط عليها وحذفها من سلسلة. يمكنك أيضًا استخدام tr لإزالة الأحرف من سلسلة.

لأغراض التوضيح ، سنستخدم سلسلة نصية ثم نوجهها إلى الأمر tr.

إزالة كافة تكرارات الحرف

باستخدام الأمر tr ، يمكنك إزالة جميع تكرارات الأحرف الصغيرة أو الكبيرة من سلسلتك. على سبيل المثال ، لإزالة جميع تكرارات الحرف الصغير 'h' من السلسلة ، سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | NS ح

إزالة جميع الأحداث 01

وبالمثل ، لإزالة جميع تكرارات الحرف الكبير 'H' من السلسلة ، سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | NS ح

يمكنك أيضًا استخدام التسلسلات المفسرة لإزالة الأحرف الصغيرة أو الكبيرة:

$رما - طرد - قذف 'مرحبا كيف حالك؟'| NS [: علوي:]

الحدوث أقل

$رما - طرد - قذف 'مرحبا كيف حالك؟'| NS [:أدنى:]

الحدوث العلوي

قم بإزالة كافة تكرارات الأحرف الصغيرة والكبيرة

يمكنك أيضًا إزالة جميع تكرارات كل من الأحرف الصغيرة والكبيرة من سلسلة. على سبيل المثال ، سيزيل الأمر التالي جميع تكرارات الحرف 'h' ، سواء كانت صغيرة أو كبيرة.

$رما - طرد - قذف 'مرحبا كيف حالك؟' | NS 'ح ح'

الحدوث العلوي والسفلي

قم بإزالة كافة تكرارات الأحرف في نطاق معين

لإزالة جميع تكرارات الأحرف من سلسلة في النطاق المحدد 'd-h' ، سيكون الأمر:

$رما - طرد - قذف 'مرحبا كيف حالك؟' | NS 'د-ح'

سيزيل هذا الأمر جميع الأحرف في النطاق 'd-h' (d ، e ، f ، g ، h) في السلسلة.
الحدوثات المحددة

استنتاج

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