#!/bin/bash cat `ls ./kadai2-2_data/*` > all.csv # all.csvの1行あたりが各日の気象データとなっています。 tmax=日最高気温 tmin=日最低気温 prec=日積算降水量 hmin=日最小湿度 #↑ 4つの変数にそれぞれ、使用する引数を代入。 if [ ${#1} -eq 0 ] then echo "文字を入力して下さい。" elif [ $1 = $tmax ] #↑ 引数が日最高気温だった場合 以下を実行 then sort -t , -k 8,8 -n -r ./all.csv | uniq -f7 -w5 -c > all2.csv #↑ 日最高気温が大きい順に行を並べる。 #日最高気温の値が同じ行は、それぞれ1つを残して削除 sort -t , -k 8,8 -n -r ./all.csv > all2-2.csv #all.csvのデータを日最高気温が高い順に並び替えたものをall2-2.csvに挿入しておく sed -n '1,10p' all2.csv > all3.csv #all2.csvのデータのうち1~10行目までをall3.csvに挿入する。 cut -d " " -f7 all3.csv >all0.csv tyou=`awk '{ goukei += $1 } END { print goukei }' all0.csv` #↑ 上位10位の最高気温の値の重複数を求める。 sed -n "1,$tyou p" all2-2.csv > all4.csv #↑ all2-2.csvの中身の1行目から変数tyou行目だけをall4.csvに挿入する。 cut -d , -f22 all4.csv > all5.csv sed -i -e "s/$/年/" all5.csv #↑ all5.csvの各行の文末に「年」を付ける。 cut -d , -f23 all4.csv > all6.csv #↑ 何月のデータかを示す値だけを抜き出してall6.csvというファイルに挿入する。 # 以下同じ操作を月・日・℃で行う。 sed -i -e "s/$/月/" all6.csv cut -d , -f1 all4.csv > all7.csv sed -i -e "s/$/日/" all7.csv cut -d , -f8 all4.csv > all8.csv sed -i -e "s/$/℃/" all8.csv paste all5.csv all6.csv all7.csv all8.csv # ↑ 各ファイルを横に統合して表示。 # 以下同じ操作を それぞれの引数で行う。 elif [ $1 = $tmin ] then sort -t , -k 9,9 -n -r ./all.csv | uniq -f8 -w5 -c > all2.csv sort -t , -k 9,9 -n -r ./all.csv > all2-2.csv sed -n '1,10p' all2.csv > all3.csv cut -d " " -f7 all3.csv >all0.csv tyou=`awk '{ goukei += $1 } END { print goukei }' all0.csv` sed -n "1,$tyou p" all2-2.csv > all4.csv cut -d , -f22 all4.csv > all5.csv sed -i -e "s/$/年/" all5.csv cut -d , -f23 all4.csv > all6.csv sed -i -e "s/$/月/" all6.csv cut -d , -f1 all4.csv > all7.csv sed -i -e "s/$/日/" all7.csv cut -d , -f9 all4.csv > all8.csv sed -i -e "s/$/℃/" all8.csv paste all5.csv all6.csv all7.csv all8.csv elif [ $1 = $prec ] then sort -t , -k 4,4 -n -r ./all.csv | uniq -f3 -w7 -c > all2.csv sort -t , -k 4,4 -n -r ./all.csv > all2-2.csv sed -n '1,10p' all2.csv > all3.csv cut -d " " -f7 all3.csv >all0.csv tyou=`awk '{ goukei += $1 } END { print goukei }' all0.csv` sed -n "1,$tyou p" all2-2.csv > all4.csv cut -d , -f22 all4.csv > all5.csv sed -i -e "s/$/年/" all5.csv cut -d , -f23 all4.csv > all6.csv sed -i -e "s/$/月/" all6.csv cut -d , -f1 all4.csv > all7.csv sed -i -e "s/$/日/" all7.csv cut -d , -f4 all4.csv > all8.csv sed -i -e "s/$/mm/" all8.csv paste all5.csv all6.csv all7.csv all8.csv elif [ $1 = $hmin ] then sort -t , -k 11,11 -n ./all.csv | uniq -f10 -w3 -c > all2.csv sort -t , -k 11,11 -n ./all.csv > all2-2.csv sed -n '1,10p' all2.csv > all3.csv cut -d " " -f7 all3.csv >all0.csv tyou=`awk '{ goukei += $1 } END { print goukei }' all0.csv` sed -n "1,$tyou p" all2-2.csv > all4.csv cut -d , -f22 all4.csv > all5.csv sed -i -e "s/$/年/" all5.csv cut -d , -f23 all4.csv > all6.csv sed -i -e "s/$/月/" all6.csv cut -d , -f1 all4.csv > all7.csv sed -i -e "s/$/日/" all7.csv cut -d , -f11 all4.csv > all8.csv sed -i -e "s/$/%/" all8.csv paste all5.csv all6.csv all7.csv all8.csv else echo '項目名が間違っています。' #↑ 項目名が違う場合エラー処理。 fi