Saya telah berjuang untuk waktu yang lama untuk menulis naskah yang akan memiliki 2 argumen, 1 meminta untuk memilih satu tahun dan 2 meminta untuk memilih apakah saya ingin minimum, maksimum, rata-rata atau semua ditampilkan sebagai baris terakhir dari file terkait ke tahun yang dipilih.
Pada dasarnya, saya memiliki direktori yang berisi subdirektori dari tahun yang berbeda (2000, 2001, 2002, dll.) Di dalam direktori tersebut adalah subdirektori selama berbulan-bulan dan berhari-hari yang berisi (a) file yang menginformasikan tentang populasi (bukan info sebenarnya) dari berbagai kota sebagai baris terakhir. Itu adalah bagian dari pohon direktori:
.
|-- 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
Semua file diformat dengan cara yang sama:
2019-04-03
Wednesday
Newcastle-upon-Tyne
255362
Saya perlu menulis skrip untuk ditanya tahun mana yang saya butuhkan (memilih direktori itu) dan kemudian bertanya apakah saya ingin rata-rata, minimum, maksimum atau semua hal di atas ditampilkan untuk populasi (yang merupakan baris terakhir dari file).
Inilah yang saya miliki sejauh ini:
#!/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
Ini memungkinkan saya memilih direktori, tetapi tidak memberi saya jawaban yang saya butuhkan, hanya meludahi baris terakhir file saya.