#!/bin/bash i=1 for file in *.csv #47都道府県のデータに対して作業を行う。 do if [ $file = Kobe.csv ] #兵庫県の場合、平均気温が書かれている場所が他と異なり12列目となっているため、場合を分けて作業する。 then name=`awk -F, 'NR==3 {print $2}' Kobe.csv` #3行2列目にある都道府県名を変数nameに入れる。 t=`awk -F, 'NR>10 {sum+=$12}END{print sum/365}' Kobe.csv` #10行目以降の12列目に平均気温があるため、その範囲で平均を取る。その値である年平均気温を変数tに入れる。 echo "$name $t" >> name$i.txt i=`expr $i + 1` #name(作業された順番の数字).txtというファイルの1行目に、(都道府県名)(年平均気温)となるように書き込む。 elif [ $file = Kagoshima.csv ] #鹿児島県も兵庫県と同様に他と異なり12列目に平均気温があるため、兵庫県と同様の作業を行う。 then name=`awk -F, 'NR==3 {print $2}' Kagoshima.csv` t=`awk -F, 'NR>10 {sum+=$12}END{print sum/365}' Kagoshima.csv` echo "$name $t" >> name$i.txt i=`expr $i + 1` else #その他の都道府県は2列目に平均気温があるため、そこだけ変えて他は兵庫県同様の作業をする。 name=`awk -F, 'NR==3 {print $2}' $file` t=`awk -F, 'NR>10 {sum+=$2}END{print sum/365}' $file` echo "$name $t" >> name$i.txt i=`expr $i + 1` fi done for file in name{1..47}.txt do echo `cat $file` >> all.txt done #各都道府県の名前と年平均気温を書いたファイルをall.txtというファイルにまとめる。 echo `sort -k2n all.txt` >> all2.txt #all2.txtというファイルにall.txt内の年平均気温を小さい順に並び替えたものを入れる。 A=`awk '{print $93 $94}' all2.txt` B=`awk '{print $91 $92}' all2.txt` C=`awk '{print $89 $90}' all2.txt` D=`awk '{print $87 $88}' all2.txt` E=`awk '{print $85 $86}' all2.txt` F=`awk '{print $83 $84}' all2.txt` G=`awk '{print $81 $82}' all2.txt` H=`awk '{print $79 $80}' all2.txt` I=`awk '{print $77 $78}' all2.txt` J=`awk '{print $75 $76}' all2.txt` #Aから順に年平均気温が大きい都道府県名と年平均気温を定義していく。 i=1 for T in $A $B $C $D $E $F $G $H $I $J do echo "$i位 $T℃ " i=`expr $i + 1` done #1位から10位までの都道府県名と年平均気温を表示する。 rm name* rm all* #このスクリプトは何度も実行するとファイルにデータが次々と追加されてしまうため、作成したファイルを最後に削除している。