2008-10-18 19 views
12

किसी भी उपकरण का उपयोग करके जिसे आप एक निक्स सिस्टम पर खोजना चाहते हैं (वास्तव में, यदि आप चाहते हैं, तो एमएसडीओ भी ठीक है), संख्याओं के सेट के माध्य की गणना करने का सबसे आसान/तेज़ तरीका क्या है, मानते हैं कि आपके पास है उन्हें एक स्ट्रीम या फ़ाइल में प्रत्येक पंक्ति में एक?तेज तरीका कमांड लाइन से संख्याओं के एक समूह के माध्य प्राप्त करने के लिए क्या है?

उत्तर

11

Awk

awk '{total += $1; count++ } END {print total/count}' 
0

पर्ल।

@a = <STDIN>; 

for($i = 0; $i < #@a; $i++) 
{ 
    $sum += $a[i]; 
} 

print $a[i]/#@a; 

कैविट एम्प्टर: मेरा वाक्यविन्यास थोड़ा सा हो सकता है।

3
perl -e 'while (<>) { $sum += $_; $count++ } print $sum/$count, "\n"'; 
5

यूनिक्स के लिए Num-Utils का उपयोग करना:

average 1 2 3 4 5 6 7 8 9 
+0

दिलचस्प। मैं Ubuntu पर इस स्थापित किया है और मैं तर्क के रूप में नहीं, stdin पर संख्या निर्दिष्ट करने के लिए किया था। – Glyph

16
awk ' { n += $1 }; END { print n/NR }' 

यह n में राशि जमा है, तो (मदों की संख्या NR = रिकॉर्ड्स की संख्या से विभाजित करके)।

पूर्णांक या वास्तविक के लिए काम करता है।

+0

एनआर चाल पर अच्छा, तो मैं बाहर copped और सबसे ज्यादा वोटों के साथ एक के लिए चला गया यकीन है कि जो जवाब AWK स्वीकार करने के लिए नहीं था! – Anthony

1

PowerShell में, यह

get-content .\meanNumbers.txt | measure-object -average 
बेशक

, कि वर्बोज़ वाक्य रचना है किया जाएगा। आप उपनाम का उपयोग कर,

gc .\meanNumbers.txt | measure-object -a 
1

"सेंट" (https://github.com/nferraz/st) का उपयोग करना यह लिखे गए हैं:

$ st numbers.txt 
N  min max sum mean sd 
10.00 1.00 10.00 55.00 5.50 3.03 

एक विकल्प निर्दिष्ट व्यक्ति के आंकड़े देखने का:

$ st numbers.txt --mean 
5.5 

(अस्वीकरण: मैं यह लिखा उपकरण :))

0

रुबी एक लाइनर

cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}' 

source