मैं वैज्ञानिक और अस्थायी मान जो सकारात्मक और नकारात्मक दोनों कर रहे हैं, उदाहरण के लिए से बाहर एक मिश्रण सॉर्ट करने के लिए आदेश sort
, उपयोग करने के लिए सख्त कोशिश कर रहे हैं:क्रमबद्ध वैज्ञानिक और नाव
-2.0e+00
2.0e+01
2.0e+02
-3.0e-02
3.0e-03
3.0e-02
चल बिन्दु के बिना या बिना
वैज्ञानिक एक्सपोनेंट, यह sort -k1 -g file.dat
के साथ ठीक काम करता है। का उपयोग करते हुए दोनों एक ही बार में जैसा कि पहले कहा, यह परिणाम:
-2.0e+00
-3.0e-02
3.0e-03
3.0e-02
...
किसी भी विचार कैसे मैं इस समस्या को हल कर सकते हैं:
-3.0e-02
-2.0e+00
2.0e+01
2.0e+02
3.0e-02
3.0e-03
इस के बाद से यह होना चाहिए स्पष्ट रूप से गलत है? और एक बार जब मैं इसे हल करता हूं, तो क्या पूर्ण मूल्य को हल करने की कोई संभावना है (उदाहरण के लिए नकारात्मक लोगों से छुटकारा पाएं)? मुझे पता है कि मैं प्रत्येक मान को स्क्वायर करने की कोशिश कर सकता हूं, सॉर्ट करें, स्क्वायर रूट ले लो। ऐसा करने से मैं कम सटीक होगा हालांकि यह अच्छा, तेज़ और सीधा तरीका रखने के लिए साफ होगा।
मेरे Linux सिस्टम: 8.12, कॉपीराइट © 2011
आपको बहुत बहुत धन्यवाद!
अद्यतन: अगर मैं डिबग मोड sort -k1 -g filename.dat --debug
मैं निम्नलिखित परिणाम प्राप्त में इसे चलाने के (मैं इस पर अंग्रेज़ी अनुवाद, उत्पादन जर्मन था)
sort: the sorting rules for „de_DE.UTF-8" are used
sort: key 1 is numerically and involves several fields
-3.0e-02
__
________
-2.0e+00
__
________
2.0e+01
_
_______
2.0e+02
_
_______
3.0e-02
_
_______
3.0e-03
_
_______
यह "गलत" नहीं है। यह सिर्फ एक स्ट्रिंग के रूप में छंटनी है। '-n' मदद कर सकता है, हालांकि मुझे नहीं पता कि यह फ्लोट मानों को संभाल लेगा या नहीं। –
@MarcB: ध्यान दें कि वह * के साथ शुरू करने के लिए संख्यात्मक सॉर्टिंग ('-g') का उपयोग कर रहा है। – DevSolar
हां, [-एन] सही आउटपुट भी नहीं उत्पन्न करता है, कोशिश की है कि – Jan