सांख्यिक प्रकार के साथ यूनिक्स में सॉर्ट कमांड


10

मेरे पास file1 है:

"$lvl=57"
"$lvl=20"
"$lvl=48"
"$lvl=17"
"$lvl=58"

File2 मुझे चाहिए:

"$lvl=17"
"$lvl=20"
"$lvl=48"
"$lvl=57"
"$lvl=58"

मूल रूप से संख्यात्मक रूप से फ़ाइल 1।


जब मैं sortआपके फ़ाइल 1 पर एक सादा यूनिक्स चलाता हूं , तो कोई विकल्प नहीं होने पर, मुझे आपका File2 मिलता है। आप अलग क्या कर रहे हैं? आप इस प्रश्न से बाहर क्या छोड़ रहे हैं?
स्कॉट

जवाबों:


17

मुझे पसंद है -V-version-sort: यह कई स्थितियों के लिए बहुत अच्छा व्यवहार करता है जिसमें तार और संख्याओं का मिश्रण होता है

sort -V

मैं इस विकल्प का उपयोग अक्सर ...

कुछ दिशा में, ls -vसंस्करण-प्रकार के लिए ls


10

आपको इसके sort -nबाद वाले हिस्से को क्रमबद्ध करने की जरूरत है =:

sort -t = -k 2n

मैं हाल ही में यह देख रहा था ^ ^। लेकिन एक और Q. क्या करें -k2n? क्या यह संख्यात्मक प्रकार से संबंधित है? धन्यवाद।
α atsнιη

2
@ कैसिया -kएक प्रकार की कुंजी को परिभाषित करता है। विवरण के लिए मैन पेज देखें। -k2nदूसरे फ़ील्ड पर शुरू होने वाली एक कुंजी को परिभाषित करता है और लाइन के अंत में समाप्त होता है और यह एक संख्यात्मक सॉर्ट कुंजी बनाता है।
स्टीफन चेज़लस

0

सॉर्ट का उपयोग करें:

sort -n file1 > file2

-n, --numeric- प्रकार
स्ट्रिंग संख्यात्मक मान के अनुसार तुलना करते हैं

 sort -g file1 > file 2

-g, --general-संख्यात्मक-सॉर्ट


3
नहीं, उन सभी पंक्तियों की रैंकिंग समान है sort -nक्योंकि वे किसी संख्या के साथ शुरू नहीं करते हैं। इसका कारण यह है कि वे एक ही रैंकिंग के साथ लाइनों के लिए किए गए अंतिम-रिज़ॉर्ट पूर्ण-पंक्ति प्रकार (लेक्सिकली, संख्यात्मक रूप से नहीं) हैं। वह "$lvl=17"पहले छांटेगा "$lvl=2"
स्टीफन चेजलस

@ स्टीफनचैजेलस ने इंगित करने के लिए धन्यवाद दिया।
हैकाहॉलिक

Paraphrase करने के लिए, -nऔर -gयहाँ निरर्थक हैं क्योंकि इनपुट संख्यात्मक नहीं है। तो यह जवाब भ्रामक है, इसलिए डाउनवोट (यह भी ध्यान दें -gऔर लंबे विकल्प जीएनयू विशिष्ट हैं)।
स्टीफन चेज़लस

लेकिन -g अच्छा सामान्य-संख्यात्मक-प्रकार है
हैकाहॉलिक

यह अभी भी संख्यात्मक मानों को क्रमबद्ध करने के लिए है, अंतर -nयह है कि यह दशमलव पूर्णांक तक सीमित नहीं है। यह अभी भी अंतिम-रिज़ॉर्ट की छँटाई के हिस्से के रूप में "$lvl=17"पहले "$lvl=2"छाँटेगा।
स्टीफन चेज़लस


-1

sort -nवह है जो आप उपयोग करना चाहते हैं। हम संख्याओं को छाँटते हैं।sort -k 2 -n file1


2
लेकिन ओपी आरोही क्रम में क्रमबद्ध करना चाहता है, जो कि डिफ़ॉल्ट है। आप रिवर्स ऑर्डर का सुझाव क्यों दे रहे हैं?
जी-मैन का कहना है कि 'मोनिका'

उपरोक्त सही है जब फ़ील्ड टैब या रिक्त स्थान से अलग हो जाते हैं और ओपी के मामले में काम नहीं करेंगे।
α atsнιη
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.