أداة إزالة الأسطر المكررة — نظّف قوائم النصوص فوراً
الصق أي قائمة من الأسطر وستقوم هذه الأداة بحذف جميع التكرارات والاحتفاظ بالإدخالات الفريدة فقط. تتيح الخيارات التحكم في حساسية الأحرف الكبيرة، وقص المسافات البادئة والتابعة قبل المقارنة، واختيار الاحتفاظ بأول أو آخر ظهور لكل مجموعة من التكرارات.
الصق النص أعلاه لإزالة الأسطر المكررة.
كيف تعمل
متى تُشكّل الأسطر المكررة مشكلة حقيقية
الأسطر المكررة غير مؤذية في الشعر، لكنها تسبب مشاكل حقيقية في البيانات المنظمة. في ملف CSV، يؤدي السطر المكرر إلى تضخيم عدد السجلات بصمت، وتشويه الإجماليات، وقد يتسبب في انتهاك قيود المفتاح الأساسي عند استيراد الملف إلى قاعدة بيانات. في ملفات سجل الخادم، قد تملأ الإدخالات المتطابقة المتكررة الصادرة عن عملية معطلة القرص في غضون دقائق. في ملفات الإعداد، تُكتب المفاتيح المكررة بصمت فوق بعضها — أو الأسوأ تسبب أخطاء في التحليل — تبعاً للمحلل المستخدم.
تعاني مستودعات الشفرة البرمجية بدورها من التكرار غير المقصود للأسطر: أخطاء النسخ واللصق في قوائم التبعيات (requirements.txt، package.json)، وتكرار عبارات الاستيراد، أو الإدخالات المكررة في .gitignore. كثيراً ما تكتشف فحوصات CI الآلية هذه المشاكل، غير أن اللصق السريع وإزالة التكرار قبل الإيداع أسرع من تتبع أخطاء خط الأنابيب.
تستحق الأسطر الفارغة اهتماماً خاصاً. يُعدّ سطران فارغان متتاليان تكراراً من الناحية التقنية، لكن كثيراً من تنسيقات النصوص (Markdown، ومصدر بايثون، وأجسام البريد الإلكتروني) تستخدم الأسطر الفارغة المزدوجة كفواصل مقصودة. يعمل خيار 'قص المسافات' في هذه الأداة على تطبيع الأسطر التي تبدو فارغة بسبب مسافات طائشة دون المساس بالأسطر الفارغة المقصودة — والنتيجة تعتمد على محتواك المحدد، لذا راجع المخرجات.
حساسية الأحرف: متى تهم ومتى لا تهم
تقارن الأداة افتراضياً الأسطر بغض النظر عن حالة الأحرف، لذا تُعدّ 'Apple' و'apple' و'APPLE' كلها سطراً واحداً ولا يُحتفظ إلا بالأول. هذا الإعداد مناسب للقوائم التي يقرأها البشر كالعلامات، وقوائم الكلمات المفتاحية، وأسماء المدن، وعناوين البريد الإلكتروني التي ترغب في دمج متغيرات الشيء الواحد.
الوضع الحساس لحالة الأحرف ضروري للشفرة البرمجية. في بايثون، import 'os' و'OS' مختلفان من الناحية التقنية (وإن كان 'OS' سيفشل وقت التشغيل على معظم الأنظمة)، واسما المتغيرين 'Result' و'result' معرّفان مختلفان. كلمات SQL المحجوزة لا تميّز بين الأحرف الكبيرة والصغيرة بالاتفاق، لكن أسماء الجداول حساسة لحالة الأحرف على أنظمة ملفات Linux. عند إزالة التكرار من مقتطفات الشفرة أو مفاتيح الإعداد أو المسارات، فعّل دائماً وضع حساسية الأحرف.
حل وسط عملي هو تشغيل الأداة مرتين: مرة بدون تمييز للأحرف لاكتشاف التكرارات المتقاربة للمراجعة، ومرة أخرى مع التمييز للإزالة الفاصلة. يكتشف هذا الأسلوب المكوّن من مرورين الأخطاء الإملائية والكتابة غير المتسقة التي قد يفوّتها الحذف التلقائي وحده.
آلية معالجة الأسطر الفارغة والمسافات
المسافات التابعة غير مرئية في معظم محررات النصوص وعمليات النسخ واللصق، لكنها تجعل الأسطر تُقارَن على أنها غير متطابقة. 'apple ' (مسافتان تابعتان) و'apple' سلسلتان مختلفتان، فبدون تفعيل القص ستحتفظ بالاثنتين — تاركاً تكراراً خفياً في المخرجات. يزيل خيار 'قص المسافات' المسافات البادئة والتابعة من كل سطر قبل المقارنة دون تعديل محتوى أسطر المخرجات (يُكتب النص بعد القص في النتيجة).
المسافات البادئة في الشفرة ذات المسافة البادئة أو القوائم الهيكلية ذات معنى: قصها سيدمر التسلسل الهرمي للمسافات البادئة. بالنسبة للشفرة أو المخططات المنظمة، عطّل القص واستخدم الوضع الحساس للأحرف للحفاظ على محتوى الأسطر كما هو. أما قوائم النصوص البسيطة كالكلمات المفتاحية وأسماء المدن ومسارات URL، فالقص هو الخيار الأنسب في معظم الحالات.
يكتسب مفتاح 'الاحتفاظ بالأول مقابل الأخير' أهميته البالغة حين تحمل قائمتك بيانات وصفية مرتبطة بالمواضع. مثلاً، سجل أحداث تُمثّل فيه الإدخالات اللاحقة أحدث الحالات — في هذا السيناريو، الاحتفاظ بالتكرار الأخير (أحدث سجل لكل مفتاح) صحيح دلالياً، في حين أن الاحتفاظ بالأول سيحتفظ ببيانات قديمة.
أسئلة شائعة
›هل تحافظ الأداة على ترتيب الأسطر؟
نعم. لا تُرتَّب الأسطر — تُزال فقط التكرارات. الترتيب النسبي للأسطر المتبقية مطابق لترتيب الإدخال.
›ما الذي يُعدّ تكراراً؟
يُعدّ سطران تكراراً إذا كانا متطابقَين بعد تطبيق الخيارات المختارة (توحيد حالة الأحرف و/أو قص المسافات). يُقارَن محتوى النص فحسب؛ أرقام الأسطر والمواضع لا تؤخذ بالحسبان.
›هل ستُحذف الأسطر الفارغة؟
تُحذف الأسطر الفارغة فقط إذا كانت تكراراً لبعضها. إذا احتوى نصك على ثلاثة أسطر فارغة متتالية وكان خيار 'الاحتفاظ بالأول' مفعّلاً، فلن يبقى إلا السطر الفارغ الأول. لحذف جميع الأسطر الفارغة، استخدم أداة ترتيب النصوص مع خيار 'إزالة الأسطر الفارغة'.
›ما الذي يفعله 'الاحتفاظ بآخر تكرار'؟
عند إلغاء تحديد 'الاحتفاظ بالأول'، تحتفظ الأداة بآخر ظهور لكل مجموعة تكرارات بدلاً من الأول. تظهر النتيجة بالترتيب الأصلي للمستند — يتغير فقط النسخ الذي يُحتفظ به.
›هل يمكنني استخدام هذه الأداة لإزالة تكرارات قوائم البريد الإلكتروني؟
نعم. الصق عنوان بريد إلكتروني واحداً في كل سطر. استخدم الوضع غير الحساس للأحرف (الافتراضي) لأن عناوين البريد الإلكتروني غير حساسة للأحرف وفق المواصفات. يُوصى أيضاً بتفعيل قص المسافات لبيانات البريد الإلكتروني المنسوخة.
›هل هناك حد لعدد الأسطر؟
لا يوجد حد مفروض. تعالج الأداة كل شيء في ذاكرة المتصفح. على أرض الواقع، تتعامل المتصفحات الحديثة مع مئات الآلاف من الأسطر دون تأخر ملحوظ.
›هل تغادر بياناتي المتصفح؟
لا. تتم جميع المعالجة بالكامل في JavaScript على جهازك. لا يُرفع أي شيء إلى أي خادم.
›كيف أزيل تكرارات CSV وفق عمود محدد؟
تعمل هذه الأداة على الأسطر كاملة. لإزالة التكرارات وفق عمود واحد، استخرج أولاً ذلك العمود في قائمة أحادية العمود، أزل تكراراتها، ثم أعد الدمج. بالنسبة للمجموعات الكبيرة، تُعدّ أداة متخصصة كـ pandas في بايثون أو دالة UNIQUE في جداول البيانات أكثر دقة.
أدوات ذات صلة
آخر تحديث: