আমি দীর্ঘদিন ধরে একটি স্ক্রিপ্ট লেখার জন্য সংগ্রাম করছি যার মধ্যে 2 টি যুক্তি রয়েছে, 1 একটি বছর নির্বাচন করতে বলছে এবং 2 নির্বাচন করতে বলছে যদি আমি সম্পর্কিত ফাইলগুলি থেকে সর্বনিম্ন, সর্বোচ্চ, গড় বা সমস্ত শেষ লাইন হিসাবে দেখানো চাই নির্বাচিত বছর।
মূলত, আমার একটি ডিরেক্টরি রয়েছে যা বিভিন্ন বছরের উপ-ডিরেক্টরিগুলি অন্তর্ভুক্ত করে (2000, 2001, 2002 ইত্যাদি) সেই ডিরেক্টরিগুলিতে মাস এবং দিনের জন্য উপ-ডিরেক্টরি রয়েছে যা (ক) ফাইল (গুলি) জনসংখ্যা সম্পর্কে তথ্য দেয় (যদিও আসল তথ্য নয়) শেষ লাইন হিসাবে শহরগুলি। এটি ডিরেক্টরি গাছের একটি অংশ:
.
|-- 2000
| |-- 01
| | `-- 18
| | `-- ff_1177818640
| |-- 02
| | |-- 02
| | | `-- ff_1669027271
| | |-- 03
| | | `-- ff_234075290
| | |-- 10
| | | `-- ff_1584524530
| | |-- 14
| | | `-- ff_113807345
| | `-- 17
| | `-- ff_1452228827
| |-- 03
| | |-- 06
| | | `-- ff_58914249
| | `-- 11
| | `-- ff_2828212321
| |-- 04
| | `-- 17
| | `-- ff_302131884
| |-- 06
| | `-- 13
| | `-- ff_2175615745
| |-- 07
| | |-- 07
| | | `-- ff_918426998
| | `-- 24
| | `-- ff_2808316425
| |-- 08
| | `-- 27
| | `-- ff_1449825497
| |-- 09
| | `-- 19
| | `-- ff_110255856
| `-- 12
| `-- 08
| `-- ff_1621190
|-- 2001
| |-- 03
| | `-- 21
| | `-- ff_517010375
| |-- 05
| | `-- 27
| | `-- ff_1458621098
| |-- 06
| | |-- 07
| | | `-- ff_155853916
| | |-- 25
| | | |-- ff_2382312387
| | | `-- ff_270731174
| | `-- 29
| | `-- ff_3228522859
| |-- 07
| | `-- 28
| | `-- ff_3215021752
| |-- 09
| | `-- 24
| | `-- ff_1080314364
| `-- 11
| `-- 24
| `-- ff_2313722442
সমস্ত ফাইল একইভাবে ফরম্যাট করা হয়:
2019-04-03
Wednesday
Newcastle-upon-Tyne
255362
আমার কোন বছরটি প্রয়োজন (সেই ডিরেক্টরিটি নির্বাচন করে) জিজ্ঞাসা করার জন্য আমাকে একটি স্ক্রিপ্ট লিখতে হবে এবং তারপরে জিজ্ঞাসা করতে হবে যে আমি গড়, সর্বনিম্ন, সর্বোচ্চ বা উপরের সমস্তটি জনসংখ্যার জন্য প্রদর্শন করতে চাই (যা ফাইলগুলির শেষ লাইন)।
আমার এ পর্যন্ত যা আছে:
#!/bin/bash
function min () {
echo $(sort -n populations | head -1)
}
function max () {
echo $(sort -n populations | tail -1)
}
function avg () {
count=0
sum=0
while read line ; do
num='echo ${line#* }'
sum='expr $sum + $num'
count='expr $count + 1'
done < populations
avg='expr $sum / $count'
echo $avg
}
echo "Please enter the year: "
read s1
echo "
Enter an option:
1. Minimum
2. Maximum
3. Average
4. All"
read s2
#echo $s2
for file in $(find ~/filesToSort/$s1 -type f) ; do
tail -1 $file >> populations
done
echo $(cat populations)
#min
#max
#avg
rm populations
এটি আমাকে ডিরেক্টরি বাছতে দেয়, তবে আমার যে উত্তরগুলি প্রয়োজন তা আমাকে দেয় না, কেবল আমার ফাইলগুলির শেষ লাইনগুলিকে ছড়িয়ে দেয়।