النص

Sort & Dedupe Lines

ترتيب أسطر النص أبجديًا، وإزالة التكرارات، والأسطر الفارغة، والمسافات الزائدة.

This tool sorts a list of lines alphabetically and removes duplicates and blank lines — a routine cleanup that's slow and error-prone to do by hand.

How to use it

Common uses

Things to keep in mind

Plain alphabetical sorting puts "file10" before "file2", since it compares strings character by character — natural sort is needed for the expected order with numbers.

Duplicate removal is case-sensitive by default — "Text" and "text" count as different lines unless the text is normalized to one case first.

مقالة عن هذه الأداة: فرز الأسطر: لماذا يختلف الفرز الأبجدي عن العددي

الأسئلة الشائعة

ما الفرق بين الترتيب مع مراعاة حالة الأحرف ودونها؟

عند تفعيل خيار "دون مراعاة حالة الأحرف" تُقارَن الأسطر بعد تحويلها إلى حالة موحّدة فتُرتَّب الأحرف الكبيرة والصغيرة معًا كسطر واحد، أما بدون هذا الخيار فتُرتَّب الأحرف الكبيرة والصغيرة بشكل منفصل حسب الترميز.

كيف تُكتشف الأسطر المكررة وكيف تُعالَج الأسطر الفارغة؟

الأسطر المكررة تُكتشف بمقارنة نصها الكامل (بعد قص المسافات إن فُعّل خيار "قص المسافات")، ويُبقى على أول ظهور فقط عند تفعيل "إزالة التكرارات"، بينما خيار "إزالة الأسطر الفارغة" يحذف الأسطر التي لا تحتوي محتوى بعد القص.

هل الأسطر التي أُدخلها تُرسل إلى خادم؟

لا، الترتيب والفرز وإزالة التكرارات تتم بالكامل داخل متصفحك عبر JavaScript، دون رفع النص إلى أي خادم.

لماذا تسبق "10" السطر "9" في الفرز الأبجدي؟

الفرز الأبجدي (المعجمي) يقارن السلاسل حرفًا بحرف كنص، لا كأرقام: "1" أصغر معجميًا من "9"، لذا تسبق "10" السطر "9". للحصول على الترتيب العددي، يجب تحليل السلاسل كأرقام أولًا.

هل يمكن الفرز حسب الترتيب الطبيعي (natural sort)؟

الفرز الطبيعي يتعرف على سلاسل الأرقام داخل السطر كأرقام، ويقارن الباقي كنص — بفضل ذلك تسبق "file2.txt" السطر "file10.txt"، وهو مفيد لأسماء الملفات أو الإصدارات ذات البادئة النصية.

مقالات: النص

camelCase وsnake_case وkebab-case: متى نستخدم كل صيغة

لماذا يوجد camelCase وsnake_case وkebab-case، وأين يُستخدم كل منها عادة.

Text Diff: كيف تعمل خوارزمية إيجاد الفروقات بين النصوص

كيف تجد خوارزمية الديف أصغر مجموعة تغييرات بين نسختين من نص.

التعبيرات النمطية: الأساسيات وفخّ المطابقة الجشعة

الفرق بين المطابقة الجشعة والكسولة في التعبيرات النمطية ولماذا يهم ذلك عمليًا.

الهروب بالأحرف: لماذا يختلف حسب السياق (JS وJSON والشِل والريجكس)

لماذا لا توجد قاعدة هروب واحدة تصلح لكل السياقات: JS وJSON والشِل والريجكس.

CRLF وLF: لماذا لا تزال نهايات الأسطر تسبّب مشاكل

من أين جاء الفرق بين CRLF وLF، ولماذا لا يزال يسبب مشاكل مع git والسكربتات.

عدّ الأحرف والكلمات: لماذا يعتمد على يونيكود

لماذا يمكن أن يتكون رمز تعبيري واحد ظاهريًا من عدة نقاط ترميز في يونيكود.

Lorem Ipsum: من أين جاء نص الحشو ولماذا لا معنى له

من أين جاء نص Lorem Ipsum فعليًا، ولماذا يُستخدم نص بلا معنى بدلاً من نص حقيقي.

Slugify: كيف يتحول العنوان إلى رابط صالح

كيف يتحول عنوان مقالة إلى رابط نظيف وقابل للقراءة بشرطات.

Markdown: لماذا أصبح معيار التوثيق

لماذا يظل Markdown مقروءًا حتى في صورته الخام، بخلاف HTML.

المسافات غير المرئية: لماذا تفشل مقارنة نصين متطابقين ظاهريًا

كيف يمكن لمسافة غير مرئية أن تجعل مقارنة نصين متطابقين ظاهريًا تفشل.

عكس النص: لماذا يفشل مع الرموز التعبيرية

لماذا يكسر عكس النص الساذج الرموز التعبيرية المركّبة من عدة نقاط ترميز.

تحليل تكرار النص: من سحابة الكلمات إلى كسر الشيفرات

كيف ساعد تحليل تكرار الحروف تاريخيًا في كسر شيفرات الاستبدال البسيطة.