আমার কাছে একটি সিরিজের পাইপযুক্ত গ্রেপস, আফস এবং সেড রয়েছে যা প্রতিটি লাইনে একটি করে সংখ্যার একটি তালিকা তৈরি করে। এটার মতো কিছু:
1.13
3.59
1.23
আমি কীভাবে এটি এমন কোনও কিছুর সাথে পাইপ করতে পারি যা গড়, সর্বাধিক এবং নূন্যতম আউটপুট দেয়?
আমার কাছে একটি সিরিজের পাইপযুক্ত গ্রেপস, আফস এবং সেড রয়েছে যা প্রতিটি লাইনে একটি করে সংখ্যার একটি তালিকা তৈরি করে। এটার মতো কিছু:
1.13
3.59
1.23
আমি কীভাবে এটি এমন কোনও কিছুর সাথে পাইপ করতে পারি যা গড়, সর্বাধিক এবং নূন্যতম আউটপুট দেয়?
উত্তর:
যেহেতু আপনি ইতিমধ্যে awk ব্যবহার করছেন
blahblahblah | awk '{if(min==""){min=max=$1}; if($1>max) {max=$1}; if($1<min) {min=$1}; total+=$1; count+=1} END {print total/count, max, min}'
awk
প্যাটার্নটি এমন /usr/local/bin/stats
বা এর মধ্যে রেখে দেব এবং তারপরে এটি ব্যবহার করব blabla | stats
।
আমি এই প্রোগ্রামটি কমান্ড লাইনে সংখ্যার তালিকার পরিসংখ্যান তৈরির জন্য দরকারী বলে মনে করি: http://web.cs.wpi.edu/~claypool/misc/stats/stats.html
সিম্পল-আরও রয়েছে, যা আর করতে পারে এমন প্রায় সব কিছু করতে পারে তবে কম কীস্ট্রোক সহ:
https://code.google.com/p/simple-r/
গড়, সর্বাধিক এবং ন্যূনতম গণনা করতে একজনকে একটি টাইপ করতে হবে:
r summary file.txt
r summary - < file.txt
cat file.txt | r summary -
@ ডারফকে টুপিটির একটি টিপ সহ:
perl -lane '$n=$F[0]; if(not defined $min){$min=$max=$n}; if($n>$max){$max=$n}; if($n<$min){$min=$n}; $total+=$n; $count+=1; END{print $total/$count." $max $min"}'
$F[0]
প্রতিটি লাইনের প্রথম (0'তম) ক্ষেত্রের মান
যদি আপনার ইনপুট ডেটা কমা দ্বারা পৃথক করা হয় তবে -F,
আগে পরিবর্তক যুক্ত করুন-lane