يجب فصل العناصر المطلوب فرزها بطريقة ما
يمكن فرز البيانات في ملف نصي Linux باستخدام أمر الفرز طالما أن كل عنصر محدد بطريقة ما. بشكل متكرر ، يتم استخدام الفاصلة كفاصل للحصول على معلومات محددة.
القواعد الأساسية للفرز
يقوم أمر الفرز بإعادة ترتيب الخطوط في ملف نصي لفرزها رقميًا وحسب الترتيب الأبجدي. القواعد الافتراضية لأمر الفرز هي:
- النص الذي يبدأ برقم يظهر قبل النص الذي يبدأ بحرف ؛ أعداد أقل فرز أولا.
- النص الذي يبدأ بحرف يظهر في الأبجدية قبل ذلك يتم فرز الحرف الأول من إدخالات النص الأخرى قبل النص الذي يبدأ بحرف يظهر لاحقًا في الأبجدية.
- عندما يبدأ النص بالحروف الكبيرة والصغيرة من نفس الحرف ، يتم فرز المثيل الصغير أولًا.
فرز ملف نصي
من أجل فرز الأسطر في ملف Linux محدد ، يمكنك استخدام أمر الفرز كما يلي:
$ sort -k2 test.txtالذي يفرز الملف "test.txt" استناداً إلى الأحرف التي تبدأ في العمود الثاني (يشير k2 إلى العمود الثاني). بافتراض أن محتوى ملف الإدخال هو:
1، جوستين تيمبرليك، العنوان 545، السعر $ 7.30 2، Taylor Swift، Title 723، السعر $ 7.90 3، Mick Jagger، Title 610، السعر $ 7.90 4، Lady Gaga، العنوان 118، السعر $ 7.30 5، Johnny Cash، Title 482، السعر $ 6.50 6، Elvis Presley، Title 335، Price $ 7.30 7، John Lennon، Title 271، Price $ 7.90 8، Michael Jackson، Title 373، Price $ 5.50نظرًا لأن العمود الثاني في هذا المثال يحتوي على الأسماء الأولى والأخيرة ، يتم ترتيب الإخراج الذي تم فرزه بالحرف الأول من الاسم الأول لكل فرد في العمود الثاني - Elvis و John و Johnny و Justin و Lady و Michael و Mick و Taylor. ، كما هو مبين أدناه:
6، Elvis Presley، Title 335، Price $ 6.30 7، John Lennon، Title 271، Price $ 7.90 5، Johnny Cash، Title 482، Price $ 6.50 1، Justin Timberlake، Title 545، Price $ 6.30 4، Lady Gaga، Title 118، Price $ 6.30 8، Michael Jackson، Title 373، Price $ 5.50 3، Mick Jagger، Title 610، Price $ 7.90 2، Taylor Swift، Title 723، Price $ 7.90إذا قمت بفرز الملف بـ -k3 (باستخدام محتويات السطر التي تبدأ في العمود 3 - عمود رقم العنوان) ، فسيكون الناتج:
4، Lady Gaga، Title 118، Price $ 6.30 7، John Lennon، Title 271، Price $ 7.90 6، Elvis Presley، Title 335، Price $ 6.30 8، Michael Jackson، Title 373، Price $ 5.50 5، Johnny Cash، Title 482، Price $ 6.50 1، جوستين تيمبرليك، العنوان 545، السعر $ 6.30 3، ميك جاغر، العنوان 610، السعر $ 7.90 2، تايلور سويفت، العنوان 723، السعر $ 7.90و
$ sort -k4 test.txtينتج قائمة تم فرزها حسب السعر:
8، Michael Jackson، Title 373، Price $ 5.50 1، Justin Timberlake، Title 545، Price $ 6.30 4، Lady Gaga، Title 118، Price $ 6.30 6، Elvis Presley، Title 335، Price $ 6.30 5، Johnny Cash، Title 482، Price $ 6.50 2، Taylor Swift، Title 723، Price $ 7.90 3، Mick Jagger، Title 610، Price $ 7.90 7، John Lennon، Title 271، Price $ 7.90عكس التصنيف
الخيار -r يعكس الفرز. على سبيل المثال ، استخدام النتائج أعلاه:
$ sort -k4 -r test.txtعائدات:
7، John Lennon، Title 271، Price $ 7.90 3، Mick Jagger، Title 610، Price $ 7.90 2، Taylor Swift، Title 723، Price $ 7.90 5، Johnny Cash، Title 482، Price $ 6.50 6، Elvis Presley، Title 335، Price $ 6.30 4، Lady Gaga، Title 118، Price $ 6.30 1، Justin Timberlake، Title 545، Price $ 6.30 8، Michael Jackson، Title 373، Price $ 5.50حفظ ملف فرز
لا يؤدي فرز الملف إلى حفظه. لحفظ القائمة التي تم فرزها في ملف ، تستخدم عامل إعادة التوجيه:
sort -k4 -r test.txt> test_new.txtحيث "test_new.txt" هو الملف الجديد.
فرز مخرجات الدفق
يمكنك أيضًا تطبيق أمر الفرز على إخراج الدفق ، مثل مشغل الأنبوب:
$ ls -al | sort -r -n -k5يقوم هذا بفرز إخراج قائمة الملفات التي تم إنشاؤها بواسطة الأمر ls حسب حجم الملف ، بدءًا من أكبر الملفات. يحدد عامل التشغيل -n الفرز الرقمي بدلاً من الأبجدية.