#!/bin/bash echo '表示したい値の番号を入力してください' echo '1.猛暑日の日数 2.真夏日の日数 3.夏日の日数' read NUMBER #表示したい値の番号を選んでもらい、それをNUMBERという変数として読み込む case $NUMBER in 1) for XX in 05 06 07 08 09 10 11 12 13 14 # 1を選んだ場合 # XXを西暦の下二桁の数字05〜14とする do cat ./kadai2_data/20$XX* > ./kadai2_data/all.20$XX.csv # 同じ年のデータをひとつのファイルにまとめる cat ./kadai2_data/all.20$XX.csv | tr -d ')' | tr -d ']' | awk -F, '{if($8 >= 35){print $8}}' | wc -l > ./kadai2_data/all.20$XX-mosho.csv # データから)と]をtrコマンドで削除する # awkコマンドで、最高気温である8行目の数値が35以上なら、抜き出す # wcコマンドで抜き出されたデータの行数(つまり条件に当てはまる日数)を数え、kadai2_data/all.20$XX-mosho.csvという新たなファイルに出力する echo 20$XX年`sed -e 's/$/'日'/' ./kadai2_data/all.20$XX-mosho.csv` # データの前に、何年のものなのか表示する # sedコマンドで数値の後に単位「日」を表示する rm ./kadai2_data/all.20* # 作ったファイルを消しておく done ;; 2) for XX in 05 06 07 08 09 10 11 12 13 14 do cat ./kadai2_data/20$XX* > ./kadai2_data/all.20$XX.csv cat ./kadai2_data/all.20$XX.csv | tr -d ')' | tr -d ']'| awk -F, '{if($8 >= 30){print $8}}' | wc -l > ./kadai2_data/all.20$XX-manastu.csv echo 20$XX年`sed -e 's/$/'日'/' ./kadai2_data/all.20$XX-manastu.csv` rm ./kadai2_data/all.20* done ;; # 2 を選んだ場合 # 1と同様に考える。真夏日なので、30度以上の日を数える。ファイル名の末尾はmanastuにして出力 3) for XX in 05 06 07 08 09 10 11 12 13 14 do cat ./kadai2_data/20$XX* > ./kadai2_data/all.20$XX.csv cat ./kadai2_data/all.20$XX.csv | tr -d ')' | tr -d ']'| awk -F, '{if($8 >= 25){print $8}}' | wc -l > ./kadai2_data/all.20$XX-nastu.csv echo 20$XX年`sed -e 's/$/'日'/' ./kadai2_data/all.20$XX-nastu.csv` rm ./kadai2_data/all.20* done ;; # 3 を選んだ場合 # 1と同様に考える。夏日なので、25度以上の日を数える。ファイル名の末尾はnastuにして出力 *) echo 'あてはまる項目がありません。1〜3の選択肢から選んでください' exit ;; # 1〜3以外の数字が入力された場合、メッセージを表示し、やり直してもらう esac #終了