AzLearn

تقسيم النصوص

Split Text with cut and IFS

مفهوم ~17 دقيقة

تقسيم النصوص — Split Text

كثير من البيانات البسيطة تأتي كسطر يحتوي حقولاً مفصولة بفاصل: name:status:count أو item,qty,price. في Bash يمكنك استخدام cut لاستخراج حقل، أو IFS مع read لتقسيم السطر إلى متغيرات. كلاهما مناسب للأشكال البسيطة، وليس CSV المعقد الذي يحتوي اقتباسات وفواصل داخل النص.

cut -d ':' -f 2 يعني: استخدم : كفاصل وخذ الحقل الثاني. هذه صيغة سريعة عندما تحتاج حقلاً واحداً. أما IFS=: read -r name status count <<< "$row" فهي أوضح عندما تحتاج عدة حقول في الوقت نفسه.

لا تجعل الفاصل غامضاً. إذا كان النص من تصميمك، اختر فاصلًا لا يظهر في القيم، أو استخدم تنسيقاً أقوى مثل JSON عندما تكبر البيانات. Bash جيدة للبيانات الصغيرة المتوقعة، لا لكل parsing.

مثال عملي

script.sh

لاحظ أننا استخدمنا الطريقتين للمقارنة. في السكربت الحقيقي اختر الأوضح، ولا تخلط الأدوات بلا حاجة.

خطأ شائع

تغيير IFS عالمياً قد يؤثر على بقية السكربت. استخدمه مرتبطاً بأمر read في نفس السطر كما في المثال. هذا يحصر تأثيره في العملية المطلوبة.

تحدي — Challenge