طريقة محمولة لتحقيق العلم LS'V (أي فرز حسب الإصدار)؟

StackOverflow https://stackoverflow.com/questions/1481824

سؤال

أنا أعمل على بعض البرامج النصية التي أرغب في الاعتماد على الميزات الموحدة فقط. أحتاج إلى فرز بعض الملفات عن طريق الإصدار. قل الملفات هي 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, ، على أوبونتو، حتى يفعل الجزء مع الشرطة السفلية بشكل صحيح، لكنني لست متأكدا مما إذا كان هذا المعيار. للتأكد، يمكنك الترتيب حسب الإصدار الثانوي أولا، ثم عن طريق الإصدار الرئيسي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top