فارز الأسطر

رتب الأسطر أبجديًا أو حسب الطول أو بالعكس أو عشوائيًا

جرب مثالاً

أسطر الإدخال

الأسطر المرتبة

يعمل محليًا · آمن للصق الأسرار
ستظهر الأسطر المرتبة هنا…

ما هو ترتيب الأسطر؟

ترتيب الأسطر هو عملية إعادة تنظيم أسطر كتلة نصية وفق قاعدة محددة: الترتيب الأبجدي، أو الترتيب العكسي، أو الترتيب حسب طول السطر، أو الترتيب العشوائي. يُعدّ ترتيب الأسطر عبر الإنترنت مهمة شائعة عند التعامل مع ملفات السجلات، وبيانات CSV، وقوائم الإعدادات، أو أي محتوى نصي عادي يكون فيه الترتيب مهمًا. تعمل هذه العملية على تقسيم النص عند محارف السطر الجديد، ثم تطبيق دالة مقارنة على المصفوفة الناتجة، وأخيرًا دمج الأسطر المرتبة مجددًا.

تستخدم معظم لغات البرمجة المقارنة المعجمية (lexicographic) افتراضيًا لترتيب النصوص، إذ تقارن المحارف وفق نقاط شفرة Unicode الخاصة بها. يعني ذلك أن الحروف الكبيرة تُرتَّب قبل الحروف الصغيرة ("Banana" قبل "apple")، وأن الأرقام تأتي قبل الحروف. يُصحح الترتيب المراعي للغة المحلية — المعروف أحيانًا بالترتيب الطبيعي أو التجميع — هذا السلوك عبر تطبيق قواعد خاصة بكل لغة. توفر كلٌّ من الدالة localeCompare() في JavaScript، وlocale.strxfrm() في Python، وأمر sort في POSIX مع LC_COLLATE ترتيبًا مراعيًا للغة المحلية.

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

لماذا تستخدم هذا الفارز؟

الصق النص، واختر وضع الترتيب، واحصل على النتيجة فورًا. لا إعداد لسطر الأوامر، ولا ملفات برمجية، ولا تثبيت لحزم.

ترتيب فوري
تظهر النتائج أثناء الكتابة أو اللصق. بدّل بين ستة أوضاع للترتيب وقارن المخرجات دون الحاجة إلى إعادة التشغيل.
🔒
معالجة تحافظ على الخصوصية
يتم الترتيب بالكامل في متصفحك باستخدام JavaScript. يبقى نصك على جهازك ولا يُرفع إلى أي خادم ولا يُسجَّل.
🔀
ستة أوضاع للترتيب
من أ إلى ي، ومن ي إلى أ، والأقصر أولًا، والأطول أولًا، والعكسي، والعشوائي. مدخل واحد يغطي أكثر مهام ترتيب الأسطر شيوعًا.
📋
لا حساب مطلوب
افتح الصفحة وابدأ الترتيب فورًا. لا تسجيل، لا إضافات، لا تطبيق مكتبي. يعمل على أي جهاز يحمل متصفحًا حديثًا.

حالات استخدام فارز الأسطر

تطوير الواجهة الأمامية
رتب قوائم أصناف CSS، وعبارات الاستيراد، أو مفاتيح الترجمة في i18n أبجديًا. يُقلل الترتيب المتسق من تعارضات الدمج في أنظمة التحكم بالإصدار ويُسرّع مراجعة الكود.
هندسة الخلفية
رتب قوائم التبعيات في package.json وrequirements.txt وgo.mod قبل الإيداع. رتب أسماء أعمدة SQL عند بناء عبارات CREATE TABLE أو مقارنة الفروقات بين المخططات.
العمليات والبنية التحتية
رتب أسماء متغيرات البيئة في ملفات .env، وإدخالات ConfigMap في Kubernetes، أو كتل المتغيرات في Terraform. يُمكّنك الترتيب الأبجدي من اكتشاف المكررات والقيم المفقودة أثناء المراجعة.
ضمان الجودة وأتمتة الاختبارات
رتب سجلات مخرجات الاختبار حسب الطابع الزمني أو الرسالة لعزل الإخفاقات بسرعة. اخلط بيانات الاختبار عشوائيًا للتحقق من أن سلوك التطبيق لا يعتمد على ترتيب الإدراج.
هندسة البيانات
رتب رؤوس CSV أو قوائم الأعمدة قبل كتابة نصوص ترحيل المخطط. رتب أسطر عينات البيانات حسب الطول للعثور على الصفوف المقطوعة أو القيم الطويلة بشكل غير عادي في خط معالجة البيانات.
الطلاب والمتعلمون
رتب قوائم المفردات، وإدخالات قائمة المراجع، أو ملاحظات الدراسة أبجديًا. اخلط أسطر البطاقات التعليمية عشوائيًا لجلسات مراجعة متنوعة دون الحاجة إلى تثبيت تطبيق منفصل.

مرجع أوضاع ترتيب الأسطر

تدعم هذه الأداة ستة أوضاع للترتيب. يصف الجدول أدناه كل وضع، وطريقة المقارنة التي يستخدمها، ونموذج نتيجة للقائمة: apple، banana، cherry، date، fig.

الوضعالوصفالدالة في JSمثال على المخرج
A-ZAlphabetical ascendinglocaleCompare()apple, banana, cherry
Z-AAlphabetical descendinglocaleCompare() reversedcherry, banana, apple
Length (short)Shortest line firsta.length - b.lengthfig, date, apple, banana
Length (long)Longest line firstb.length - a.lengthbanana, apple, date, fig
ReverseFlip line order, no reorderingArray.reverse()Last line becomes first
RandomRandomized comparator (biased)Math.random() - 0.5Different every run

خوارزميات الترتيب خلف الكواليس

عند استدعاء Array.sort() في JavaScript، يستخدم محرك V8 (Chrome، Node.js) خوارزمية Timsort منذ عام 2019. تستخدم بيئات التشغيل الأخرى خوارزميات مختلفة. يقارن الجدول أدناه أكثر خوارزميات الترتيب شيوعًا المستخدمة في المكتبات القياسية للغات البرمجة. تُعالج جميعها عمليات ترتيب الأسطر في هذه الأداة في أقل من ميلي ثانية للمدخلات المعتادة (أقل من 100,000 سطر).

الخوارزميةمستخدمة فيالتعقيد الزمنيملاحظات
TimsortPython, Java (Arrays.sort)O(n log n)Stable, fast on partially sorted data
QuicksortC stdlib, V8 (older)O(n log n)In-place, unstable by default
Merge sortMost stable-sort implementationsO(n log n)Stable, predictable, uses extra memory
IntrosortC++ std::sort, .NETO(n log n)Hybrid: quicksort + heapsort fallback
Radix sortFixed-length keys, integersO(nk)Non-comparative, linear for short keys

أمثلة برمجية

رتب الأسطر برمجيًا باستخدام JavaScript، وPython، وGo، وسطر الأوامر. يتناول كل مثال الترتيب الأبجدي، والترتيب حسب الطول، والترتيب العكسي.

JavaScript
const text = `banana
apple
cherry
date
fig`

// Sort A-Z (locale-aware)
const az = text.split('\n').sort((a, b) => a.localeCompare(b)).join('\n')
// → "apple\nbanana\ncherry\ndate\nfig"

// Sort by line length, shortest first
const byLen = text.split('\n').sort((a, b) => a.length - b.length).join('\n')
// → "fig\ndate\napple\nbanana\ncherry"

// Reverse line order (no alphabetical sorting)
const reversed = text.split('\n').reverse().join('\n')
// → "fig\ndate\ncherry\napple\nbanana"

// Remove duplicates and sort
const unique = [...new Set(text.split('\n'))].sort().join('\n')
Python
text = """banana
apple
cherry
date
fig"""

lines = text.splitlines()

# Sort A-Z (case-insensitive)
az = sorted(lines, key=str.lower)
# → ['apple', 'banana', 'cherry', 'date', 'fig']

# Sort by line length
by_len = sorted(lines, key=len)
# → ['fig', 'date', 'apple', 'banana', 'cherry']

# Reverse original order
rev = lines[::-1]
# → ['fig', 'date', 'cherry', 'apple', 'banana']

# Shuffle randomly
import random
random.shuffle(lines)  # modifies in place
Go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "banana\napple\ncherry\ndate\nfig"
	lines := strings.Split(text, "\n")

	// Sort A-Z
	sort.Strings(lines)
	fmt.Println(strings.Join(lines, "\n"))
	// → apple\nbanana\ncherry\ndate\nfig

	// Sort by length
	sort.Slice(lines, func(i, j int) bool {
		return len(lines[i]) < len(lines[j])
	})
	fmt.Println(strings.Join(lines, "\n"))
	// → fig\ndate\napple\nbanana\ncherry
}
CLI (bash)
# Sort lines A-Z
sort file.txt

# Sort lines Z-A (reverse)
sort -r file.txt

# Sort numerically (first field)
sort -n data.txt

# Sort by line length (awk + sort + cut)
awk '{ print length, $0 }' file.txt | sort -n | cut -d' ' -f2-

# Shuffle lines randomly
shuf file.txt          # GNU coreutils
sort -R file.txt       # alternative (not truly uniform)

# Sort and remove duplicates
sort -u file.txt

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

ما الفرق بين الترتيب الأبجدي العادي والترتيب الطبيعي؟
يقارن الترتيب الأبجدي العادي (المعجمي) المحارف وفق نقاط شفرة Unicode الخاصة بها. يعني ذلك أن "item10" تُرتَّب قبل "item2" لأن المحرف '1' له نقطة شفرة أقل من '2'. أما الترتيب الطبيعي فيعامل الأرقام المضمّنة كقيم رقمية، لذا تأتي "item2" قبل "item10". تستخدم هذه الأداة الترتيب المعجمي المراعي للغة المحلية عبر localeCompare()، والذي يتعامل مع المحارف المُعلَّمة بشكل صحيح لكنه لا يُطبّق الترتيب الطبيعي على الأرقام.
هل يُرسَل نصي إلى خادم عند ترتيب الأسطر؟
لا. يتم الترتيب بالكامل في متصفحك باستخدام الدالة Array.sort() في JavaScript. لا يغادر النص جهازك أبدًا. يمكنك التحقق من ذلك بفتح لوحة الشبكة في أدوات المطور والتأكد من أنه لا تُرسَل أي طلبات عند لصق النص وترتيبه.
كم عدد الأسطر التي تستطيع هذه الأداة معالجتها؟
تعمل الأداة بكفاءة مع عشرات الآلاف من الأسطر. تُعالج خوارزمية Timsort في محرك V8 100,000 سطر في أقل من 100 ميلي ثانية على الأجهزة الحديثة. بالنسبة للملفات التي يزيد حجمها عن بضعة ميغابايت، يكون أمر sort في Unix أكثر كفاءة لأنه يستطيع استخدام ترتيب الدمج المعتمد على القرص ومعالجات متعددة.
كيف يعمل الترتيب غير الحساس لحالة الأحرف؟
تستخدم هذه الأداة الدالة String.localeCompare() مع الخيار { sensitivity: 'base' }، مما يجعل المقارنة غير حساسة لحالة الأحرف، بحيث تُرتَّب "Apple" و"apple" معًا بدلًا من مجموعتين منفصلتين. افتراضيًا، تكون localeCompare() حساسة لحالة الأحرف؛ لذا يلزم تحديد هذا الخيار صراحةً للحصول على هذا السلوك. إن كنت تحتاج إلى ترتيب حساس لحالة الأحرف تظهر فيه الحروف الكبيرة أولًا، فإن أمر sort في Unix بدون علامة -f يوفر هذا السلوك.
هل يمكنني ترتيب الأسطر وإزالة التكرارات في آنٍ واحد؟
تُرتّب هذه الأداة الأسطر لكنها لا تُزيل التكرارات. لإزالة الأسطر المكررة، استخدم أداة إزالة الأسطر المكررة في نفس الفئة. يمكنك ترتيب نصك هنا أولًا، ثم لصق النتيجة في أداة إزالة التكرارات للحصول على قائمة نظيفة وفريدة ومرتبة.
ما الفرق بين الترتيب العكسي والترتيب من ي إلى أ؟
يقلب الترتيب العكسي ترتيب الأسطر الأصلي: يصبح السطر الأخير هو الأول، وما قبل الأخير يصبح الثاني، وهكذا. لا تتضمن هذه العملية أي مقارنة أبجدية. أما الترتيب من ي إلى أ فيُرتّب الأسطر تنازليًا وفق الترتيب الأبجدي بغض النظر عن موضعها الأصلي. إذا كان مدخلك مرتبًا بالفعل من أ إلى ي، فإن الوضعين يُنتجان نفس المخرج، لكن للمدخل غير المرتب تتباين النتائج.
كيف أرتب الأسطر حسب عمود أو حقل محدد؟
تُرتّب هذه الأداة وفق محتوى السطر بأكمله. لترتيب أسطر حسب عمود محدد (مثلًا الحقل الثاني في ملف مفصول بعلامات جدولة)، استخدم أمر sort في Unix مع علامة -k: sort -t$'\t' -k2,2 file.txt. في Python، قسّم كل سطر واستخدم دالة مفتاح: sorted(lines, key=lambda x: x.split('\t')[1]).