जवाबों:
सॉर्ट के लिए मैन पेज पर एक नज़र डालें ...
-n, --numeric-sort compare according to string numerical value
तो यहाँ एक उदाहरण है ...
sort -n filename
-g, --general-numeric-sortकरना अधिक उचित हो सकता है। यह आगे वैज्ञानिक संकेतन की अनुमति देता है जैसे 1.234E10 इत्यादि
यदि आप ऐसे तार छांट रहे हैं जो मिश्रित पाठ और संख्याएँ हैं, उदाहरण के लिए रोलिंग लॉग के फ़ाइलनाम तो फिर से छँटाई करना sort -nअपेक्षित नहीं है:
$ ls |sort -n
output.log.1
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.2
output.log.20
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
उस मामले में विकल्प -Vचाल करता है:
$ ls |sort -V
output.log.1
output.log.2
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.20
मैन पेज से:
-V, --version-sort natural sort of (version) numbers within text
lsमाध्यम से पाइपिंग करते हैं sed, तो जाहिर तौर पर रंगीन आउटपुट चीजों को भी प्रभावित कर रहे थे। इसलिए दौड़ने से ls --color=neverभी फर्क पड़ा।
-Vबिल्कुल वही जो मैं देख रहा था। मुझे पहले पुरुष पृष्ठों के माध्यम से देखने की आदत डालनी चाहिए।
खैर, ज्यादातर अन्य जवाब यहाँ देखें
sort -n
हालाँकि, मुझे यकीन नहीं है कि यह नकारात्मक संख्याओं के लिए काम करता है। यहां मैं फेडोरा 9 पर 6.10 के सॉर्ट संस्करण के साथ परिणाम प्राप्त कर रहा हूं।
इनपुट फ़ाइल:
-0.907928466796875
-0.61614990234375
1.135406494140625
0.48614501953125
-0.4140167236328125
आउटपुट:
-0.4140167236328125
0.48614501953125
-0.61614990234375
-0.907928466796875
1.135406494140625
जो स्पष्ट रूप से संख्यात्मक मूल्य द्वारा आदेशित नहीं है।
फिर, मुझे लगता है कि अधिक सटीक उत्तर का उपयोग करना होगा, sort -nलेकिन केवल तभी जब सभी मूल्य सकारात्मक हों।
पुनश्च: sort -gइस उदाहरण के लिए केवल एक ही परिणाम का उपयोग करना
संपादित करें:
ऐसा लगता है कि स्थानीय सेटिंग प्रभावित करती हैं कि माइनस साइन ऑर्डर को कैसे प्रभावित करता है ( यहां देखें )। उचित परिणाम प्राप्त करने के लिए मैंने अभी-अभी:
LC_ALL=C sort -n filename.txt
आपको संख्यात्मक प्रकार विकल्प का उपयोग करना होगा:
sort -n -k 1,1 File.txt
का प्रयोग करें sort -nया sort --numeric-sort।
echo " Enter any values to sorting: "
read n
i=0;
t=0;
echo " Enter the n value: "
for(( i=0;i<n;i++ ))
do
read s[$i]
done
for(( i=0;i<n;i++ ))
do
for(( j=i+1;j<n;j++ ))
do
if [ ${s[$i]} -gt ${s[$j]} ]
then
t=${s[$i]}
s[$i]=${s[$j]}
s[$j]=$t
fi
done
done
for(( i=0;i<n;i++ ))
do
echo " ${s[$i]} "
done