2008-10-18 36 views

Trả lời

11

AWK

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

Perl.

@a = <STDIN>; 

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

print $a[i]/#@a; 

Lưu ý Emptor: Cú pháp của tôi có thể hơi ngớ ngẩn.

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

Sử dụng Num-Utils cho UNIX:

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

Thú vị. Tôi đã cài đặt trên Ubuntu và tôi phải chỉ định các số trên stdin, không phải là đối số. – Glyph

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

này tích lũy tổng trong n, sau đó phân chia bởi số lượng các mục (NR = Số hồ sơ).

Làm việc cho số nguyên hoặc số thực.

+0

Tốt đẹp trên thủ thuật NR, không chắc chắn mà awk câu trả lời để chấp nhận vì vậy tôi copped ra và đi cho một trong những phiếu có nhiều nhất! – Anthony

1

Trong Powershell, nó sẽ là

get-content .\meanNumbers.txt | measure-object -average 

Tất nhiên, đó là cú pháp tiết. Nếu bạn đã gõ nó sử dụng bí danh,

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

Sử dụng "st" (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 

Chỉ định một tùy chọn để xem số liệu thống kê cá nhân:

$ st numbers.txt --mean 
5.5 

(DISCLAIMER: Tôi viết này tool :))

0

Ruby one liner

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

source

Các vấn đề liên quan