طريقة محمولة لتحقيق العلم LS'V (أي فرز حسب الإصدار)؟
سؤال
أنا أعمل على بعض البرامج النصية التي أرغب في الاعتماد على الميزات الموحدة فقط. أحتاج إلى فرز بعض الملفات عن طريق الإصدار. قل الملفات هي Bar-1. {0،2،3} Bar-11. {0،2،3}.
بشكل افتراضي، يعطيني LS:
bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3
الحصول على ما أريده سهل الاستخدام "LS -V":
bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3
المشكلة هي "LS -V" ليست قياسية. وبعد معيار نوع يبدو أيضا أنه يفتقر إلى الخيار الذي أريده، على الرغم من أنني يمكن أن أبحث في الإصدارات القديمة من المواصفات.
هل يمكن لأي شخص أن يقترح طريقة محمولة لتحقيق هذا التأثير أقل من كتابة روتين الفرز الخاص بي؟
شكرا، ريس
المحلول
sort -n -t- -k2
يبدو أن تفعل ما تريد. -n
يمنحك فرز رقمي (أي ليس أبجدي)؛ -t-
يضبط فاصل الحقل إلى -
, ، و -k2
حدد الحقل الثاني، أي رقم الإصدار.
لي sort
, ، على أوبونتو، حتى يفعل الجزء مع الشرطة السفلية بشكل صحيح، لكنني لست متأكدا مما إذا كان هذا المعيار. للتأكد، يمكنك الترتيب حسب الإصدار الثانوي أولا، ثم عن طريق الإصدار الرئيسي.