باش: أثناء قراءة السطر

Bash While Read Line



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

بناء الجملة الأساسي أثناء قراءة السطر

تُستخدم الصيغة التالية لصدفة bash لقراءة ملف باستخدام حلقة while:







في حين اقرأ -rخط؛
فعل
رما - طرد - قذف 'سطر $'؛
انتهى <ملف الإدخال

تم تمرير الخيار '-r' في بناء الجملة المذكور أعلاه لقراءة الأمر الذي يتجنب هروب الخط المائل العكسي من التفسير. يمثل خيار 'ملف الإدخال' اسم الملف الذي تريد الوصول إليه باستخدام الأمر 'قراءة'.



يتم اختصار فاصل الحقل الداخلي حيث يمكن استخدام IFS قبل تعيين أمر القراءة على السلسلة الخالية التي تمنع قطع المسافة البيضاء البادئة أو اللاحقة.



في حين IFS=اقرأ -rخط؛
فعل
رما - طرد - قذف سطر $؛
انتهى <ملف الإدخال

افتح الجهاز باستخدام اختصار Ctrl + Alt + t ثم قم بتشغيل الأوامر التالية عليه.





المثال الأول: قراءة ملف سطرًا بسطر

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

الصق الأسماء التالية لتوزيعات Linux في OS.txt



CentOS
أوبونتو
ديبيان
LinuxMint $في حين اقرأخط؛
فعل
رما - طرد - قذف سطر $؛
انتهى <OS.txt


من الأمر أعلاه ، سوف تحصل على الاستجابة التالية في نافذة المحطة:

المثال الثاني: قراءة ملف باستخدام سكربت باش

قم بإنشاء ملف bash ثم قم بإضافة الكود المذكور أدناه في هذا الملف لقراءة محتوى الملف. يمكنك تخزين الملف النصي السابق في متغير جديد $ filename ويتم استخدام المتغير $ n للاحتفاظ بقيمة كل سطر. الآن ، باستخدام حلقة while ، سنقرأ كل سطر من ملف برقم سطر معين.

#!/bin/bash
اسم الملف='OS.txt'
ن=1
في حين اقرأخط؛
فعل
# لقراءة كل سطر
رما - طرد - قذف رقم خط توزيع نظام التشغيل.$ ن:سطر $'
ن= دولار((ن +1))
انتهى < اسم الملف $

احفظ الملف باسم OSinfo.sh واكتب الأمر التالي على المحطة لتشغيل البرنامج النصي أعلاه.

$سحقOSinfo.sh

الآن ، قم بتشغيل الأمر cat لعرض محتوى الملف الأصلي.

$قطOS.txt

طريقة بديلة لقراءة الملف

باستخدام تمرير اسم الملف من الأمر

في ملف bash ، تحتاج إلى إضافة البرنامج النصي التالي. في هذا البرنامج النصي ، علينا أن نأخذ اسم ملف كوسيطة. أولاً ، تتم قراءة قيمة الوسيطة بواسطة متغير $ 1 الذي له اسم ملف للقراءة. سيتحقق من وجود اسم الملف في الموقع المحدد ثم باستخدام حلقة while فإنه يقرأ سطرًا ملفًا سطرًا على غرار المثال السابق.

#!/bin/bash
اسم الملف=1 دولار
في حين اقرأخط؛فعل
# قراءة كل سطر
رما - طرد - قذف سطر $
انتهى < ملف $.رسالة قصيرة

احفظ البرنامج النصي أعلاه باسم 'Readline.sh' ونفذ الأمر التالي على الجهاز لتشغيل البرنامج النصي المذكور أعلاه:

في الإخراج أعلاه ، ستلاحظ أن الملف 'OSinfo.txt' يمر كوسيطة وسيتم عرض محتوى 'OSinfo.txt' بعد إزالة المسافات الزائدة. يمكنك عرض محتوى الملف الأصلي عن طريق تشغيل 'cat OSinfo.txt'.

استنتاج

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