لأغراض تصحيح الأخطاء، تحديد الملفات التي تبدأ بعلامة ترتيب البايت UTF-8 (BOM) داخل الدليل أمر بالغ الأهمية. ومع ذلك، يمكن أن تكون الطرق الموجودة معقدة وقد تواجه مشكلات في أسماء الملفات التي تحتوي على فواصل الأسطر. في هذه المقالة، سنتعمق في حل أكثر بساطة.
بدءًا من الأمر الأصلي، نستخدم البحث لاجتياز الدليل بشكل متكرر، وتصفية الملفات وإرسال أسمائها إلى حلقة زمنية. داخل الحلقة، يستخرج الرأس البايتات الثلاثة الأولى من كل ملف ويقارنها بتسلسل قائمة مكونات الصنف (BOM) المتوقع ($'\xef\xbb\xbf'). يتم بعد ذلك تمييز الملفات التي تستوفي هذا الشرط.
أحد الجوانب السلبية المحتملة لهذا الأسلوب هو ضعفه تجاه فواصل الأسطر في أسماء الملفات. للتحايل على هذه المشكلة، نقدم أمرًا بديلاً لا يحدد موقع الملفات المسبوقة بـ BOM فحسب، بل يحذفها أيضًا:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
يستخدم هذا الأمر sed لاستبدال تسلسل قائمة مكونات الصنف (BOM) بسلسلة فارغة في السطر الأول من كل منها ملف مطابق. ومع ذلك، يرجى ملاحظة أن هذا الإجراء سيؤدي إلى تعديل أي ملفات ثنائية تحتوي على هذه الأحرف.
بالنسبة لأولئك الذين يبحثون عن أسلوب غير مدمر، نوصي بالأمر التالي:
grep -rl $'\xEF\xBB\xBF' .
يستخدم هذا الأمر grep لتحديد موقع الملفات التي تحتوي على تسلسل BOM وإدراجها دون تغيير محتوياتها.
في النهاية، يعتمد اختيار الحل على النتيجة المرجوة وطبيعة الملفات التي يتم فحصها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3