जवाबों:
सॉर्ट के लिए मैन पेज पर एक नज़र डालें ...
-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