#!/bin/bash for i in `find ./kadai1_data/*.csv` #"./kadai1_data"内の拡張子が.csvのファイルについて繰り返し処理を行う do a=`echo $i | cut -d / -f3` #"./kadai1_data/*.csv"において"/"で区切ったときの3項目を変数aとする b=`echo $a | cut -d . -f1` #aにおいて"."で区切ったときの1項目を変数bとする if [[ $i = ./kadai1_data/Kobe.csv ]] || [[ $i = ./kadai1_data/Kagoshima.csv ]] then #"./kadai1_data"内のcsvファイルが"Kobe.csv"または"Kagoshima.csv"のときにおいて cut -d ',' -f12 $i > 2_$b.csv #","で区切ったときの12列目を抜き出し、それを"2_(県名).csv"として保存する else #上記2つのcsvファイル以外において cut -d ',' -f2 $i > 2_$b.csv #","で区切ったときの2列目を抜き出しい、それを"2_(県名).csv"として保存する fi done for i in `find ./2_*.csv` do a=`echo $i | cut -d / -f2` #"./2_*.csv"において"/"で区切ったときの2項目を変数aとする b=`echo $a | cut -d . -f1` #aにおいて"."で区切ったときの1項目を変数bとする c=`echo $b | cut -d _ -f2` #bにおいて"_"で区切ったときの2項目(県名)を変数cとする gawk '{sum=sum+$1} END {print sum/(NR-7)" ℃ ";}' $i > 3_$c.csv #iすなわち"2_(県名).csv"ファイルにはそれぞれの都道府県の1年間の平均気温のデータがあり、平均気温のデータは8行目から始まっている。そのため、年間の平均気温を足し合わせたあとその合計を(全行数-7)で割ると平均気温が求まる。その結果を"3_(県名).csv"へ保存する。 sed -n 3p $i > 4_$c.csv; #"./2_(県名).csv"の3行目にそれぞれの都道府県名があるのでそれを切り出したものを"4_(県名).csv"として保存する done cat ./3_*.csv > all_3.csv #都道府県それぞれの平均気温のみのデータを1つにまとめて"all_3.csv"として保存する cat ./4_*.csv > all_4.csv #県名のみのデータが入った全ての4_(県名).csvファイルを1つにまとめて"all_4.csv"として保存する paste ./all_4.csv ./all_3.csv > all_5.csv #1列目に県名、2列目に平均温度が来るように"paste"でファイルを統合し、その結果を"all_5.csv"として保存する sort -k 2 -r -g all_5.csv > all_6.csv #"all_5.csv"の2列目の平均温度(実数)について"sort"を用いて降順に並び変え,その結果を"all_6.csv"として保存する head -n 10 all_6.csv #"head"を用いて"all_5.csv"の上から10行分を出力する rm 2_*.csv rm 3_*.csv rm 4_*.csv rm all_*.csv #スクリプトの実行によって生成されたファイルを削除する.プログラムは以上である.