كيف تكشف إذا كان الملف ينتهي بـ newline
في Bash
في العديد من مهام البرمجة والبرمجة النصية، فإن التأكد من أن الملف ينتهي بحرف newline
أمر بالغ الأهمية. هذا صحيح بشكل خاص عند العمل مع أنظمة التحكم في الإصدار مثل Subversion (SVN)، حيث يمكن أن يؤثر تنسيق ملفات النص الخاصة بك على الالتزامات والتغييرات. إذا تساءلت يومًا كيف تتحقق من ما إذا كان الملف ينتهي بـ newline
، فقد جئت إلى المكان الصحيح! ستوجهك هذه المدونة خلال خطوات حل هذه التحدي المثير خطوة بخطوة.
فهم المشكلة
عند إنشاء ملفات نصية، قد لا ينتهي بعض الملفات بحرف newline
. قد يؤدي ذلك إلى سلوكيات غير متوقعة أو أخطاء عند تنفيذ البرمجيات النصية أو الالتزام بالتغييرات في أنظمة التحكم في الإصدار. قد تسأل:
- كيف يمكنك الكشف إذا كان الملف ينتهي بحرف
newline
؟
للإجابة على هذا السؤال، سنستخدم أداة سطر الأوامر tail
، والتي توجد عادةً في أنظمة التشغيل الشبيهة بـ Unix، جنبًا إلى جنب مع نص Bash بسيط لأتمتة عملية الكشف.
نظرة عامة على الحل
يتضمن الحل استخدام الأمر tail
للتحقق من آخر بايت في الملف. إذا لم يكن آخر بايت هو newline
، فإن الملف لا ينتهي بـ newline
. دعنا نقسم الخطوات اللازمة لإنشاء نص لهذا الغرض.
دليل خطوة بخطوة لإنشاء نص Bash
-
إنشاء ملف نص Bash: افتح Terminal الخاص بك وأنشئ نصًا جديدًا. يمكنك تسميته
check_newline.sh
. -
كتابة منطق النص: إليك كيف سيبدو نصك:
#!/bin/sh c=`tail -c 1 $1` if [ "$c" != "" ]; then echo "no newline" fi
- تفسير الكود:
#!/bin/sh
: هذه السطر يبلغ النظام بأنه يجب تشغيل النص باستخدام Bourne shell.c=\
tail -c 1 $1`: هذا الأمر يسترجع آخر بايت من الملف الممرر كوسيلة (
$1`).if [ "$c" != "" ]; then
: هذا يتحقق مما إذا كان آخر بايت ليس فارغًا.echo "no newline"
: إذا لم يكن آخر بايت فارغًا، فإنه يطبع “no newline”، مما يدل على أن الملف لا ينتهي بحرفnewline
.
- تفسير الكود:
-
حفظ وجعل نصك قابل للتنفيذ: احفظ الملف واجعله قابلًا للتنفيذ باستخدام الأمر التالي:
chmod +x check_newline.sh
-
تشغيل نصك: يمكنك الآن تشغيل نصك عن طريق تمرير اسم الملف كوسيلة:
./check_newline.sh filename.txt
- إذا كانت النتيجة “no newline”، فهذا يعني أن الملف لا ينتهي بحرف
newline
.
- إذا كانت النتيجة “no newline”، فهذا يعني أن الملف لا ينتهي بحرف
مثال عملي
دعونا نلقي نظرة على مثال عملي يعتمد على النص أعلاه. لنفترض أن لديك الملفين التاليين:
test_no_newline.txt
(لا ينتهي بحرفnewline
)test_with_newline.txt
(ينتهي بحرفnewline
)
باستخدام الأوامر:
cat test_no_newline.txt
# النتيجة: this file doesn't end in newline$
cat test_with_newline.txt
# النتيجة: this file ends in newline
عند تشغيل نص check_newline.sh
على كلا الملفين، سترى:
- بالنسبة لـ
test_no_newline.txt
، ستكون النتيجة:no newline
- بالنسبة لـ
test_with_newline.txt
، لن يكون هناك أي ناتج، مما يدل على أنه ينتهي بحرفnewline
.
الخاتمة
الكشف عما إذا كان الملف ينتهي بحرف newline
يساعد في الحفاظ على تنسيقات الملفات نظيفة ومتسقة، خاصة عند التعاون في المشاريع. يوفر نص Bash البسيط الذي ناقشناه حلاً فعالاً لهذه المشكلة. تذكر دائمًا، في البرمجة، فإن التفاصيل الصغيرة يمكن أن تحدث فرقًا كبيرًا، والحفاظ على تنسيق ملفات النصوص بشكل صحيح هو أمر حيوي!
لا تتردد في تجربة النص ورؤية كيف يعمل مع ملفات النص الخاصة بك. نص برمجي سعيد!