#!/bin/bash #最初に ) と ] を sedコマンドで取り除く。 #取り除くとしたが実際は置換している。 #sed -e 's/置換元/置換先/g' gを入れることで各行のすべての対象を置換できる。 #sed -e 's/置換元/置換先/g' -e 's/置換元/置換先/g' -eで複数置換。 #今回は置換先に何も指定しないことで削除処理としている。 #何年の何月という風にファイルが別れているため、年ごとにまとめる。 #for文で繰り返しやらせる。 for year in `seq 2005 2014` do cat ./kadai2_data/$year-??.csv | sed -e 's/)//g' -e 's/]//g' > ./kadai2_data/sed$year.txt done #選択肢を示す。 echo '表示したいデータをこの中から選んでください' echo '1)猛暑日の日数 2)真夏日の日数 3)夏日の日数' #標準入力を読み込む。 read number #case文で選択肢によって処理を分ける。 case $number in 1 ) x=35.0 y=1000 ;; 2 ) x=30.0 y=35 ;; 3 ) x=25.0 y=30 ;; * ) echo '指定された中から選んでください。' exit ;; esac #年ごとに分けたものをawkコマンドで最高気温のところのみ抽出。 #awk -F , の部分の'-F ,'を書かずにやらないと妙なことになる。 #if文で温度を判定する。それをwc -lで数える。 #for文で繰り返しやらせる。 for year in `seq 2005 2014` do echo "$year" `cat ./kadai2_data/sed$year.txt | awk -F , '{if($8>='$x')print$8;}' | awk -F , '{if($1<'$y')print$1}' | wc -l`'日' done #最後に作ったファイルを削除。 rm ./kadai2_data/sed*