ما هي أسرع طريقة للحصول على متوسط مجموعة من الأرقام من سطر الأوامر؟
-
03-07-2019 - |
سؤال
باستخدام أي أدوات تتوقع العثور عليها في نظام nix (في الواقع، إذا كنت تريد، فإن msdos جيد أيضًا)، ما هي الطريقة الأسهل/الأسرع لحساب متوسط مجموعة من الأرقام، بافتراض أن لديك واحدة منها لكل سطر في دفق أو ملف؟
المحلول
أوك
awk '{total += $1; count++ } END {print total/count}'
نصائح أخرى
awk ' { n += $1 }; END { print n / NR }'
هذا يتراكم المبلغ في n
, ثم نقسم على عدد العناصر (NR
= عدد السجلات).
يعمل للأعداد الصحيحة أو الحقيقية.
استخدام عدد الاستخدامات لنظام التشغيل UNIX:
average 1 2 3 4 5 6 7 8 9
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
في بوويرشيل، سيكون كذلك
get-content .\meanNumbers.txt | measure-object -average
وبطبيعة الحال، هذا هو بناء الجملة مطول.إذا كتبته باستخدام الأسماء المستعارة،
gc .\meanNumbers.txt | measure-object -a
باستخدام "ش" (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
(تنصل:لقد كتبت هذه الأداة :))
بيرل.
@a = <STDIN>;
for($i = 0; $i < #@a; $i++)
{
$sum += $a[i];
}
print $a[i]/#@a;
مسؤولية المشتري:قد يكون بناء الجملة الخاص بي قليلاً.
روبي بطانة واحدة
cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}'
لا تنتمي إلى StackOverflow