سؤال

أحاول فرز جدول بناءً على القيمة الأولى من أصغر إلى أكبر مع أمر فرز GNU-CoreUtils.

طاولتي تبدو مثل هذا:

file.txt

100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...

لقد حاولت القيام بما يلي:

sort -n -k 1 file.txt

لكني أحصل على أشياء مثل ...

10,0,10,10
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14

أريد الترتيب العددي المنطقي.

تيد.

هل كانت مفيدة؟

المحلول

الاحتجاج الصحيح ل sort قد تبدو

$ sort -n -t , -k 1,1 file.txt

تفسير:

  • -n فرز عدديًا
  • -t , فاصلة فاصل المجال
  • -k 1,1 فرز في الحقل الأول
  • file.txt ملف الإدخال

استدعاء البرنامج المعطى أعلاه يعطي

10,0,10,10
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18

عند الفرز حسب الحقول ، يكون الاستخدام مفيد للغاية --debug الخيار ، فقط للتأكد من أن هذا النوع يعمل كما هو متوقع.

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