#!/bin/bash touch kdatehigh.txt touch kave.txt for file in `ls data*.csv` #配布された2008年から2017年の気象データを繰り返し処理する do max=`sed -n 4p $file | awk -F',' '{print NF}'` n=1 while [[ $n -lt $max ]]; do T=`sed -n 4p $file | cut -d , -f $n | grep -ci "最高気温(℃)" ` #配布されたcsvデータから最高気温の列を抽出する if [[ $T = 1 ]] ; then awk -F"," -v n=$n '(NR>6){print $1,$n}' $file > kdatehigh.txt #年月日、最高気温の列を並べたファイルを作成する fi n=$(( n + 1 )) #インクリメント done n=1 while [[ $n -lt $max ]] do T=`sed -n 4p $file | cut -d , -f $n | grep -ci "平均気温(℃)" ` #配布されたcsvデータから平均気温の列を抽出する if [[ $T = 1 ]] ; then awk -F"," -v n=$n '(NR>6){print $n}' $file > kave.txt #平均気温のみのファイルを作成する fi n=$(( n + 1 )) #インクリメント done paste kdatehigh.txt kave.txt > k1.txt #年月日、最高気温、平均気温の列を並べたファイルを作成する awk '$2>=25 {print $1","$2","$3}' k1.txt > knatsubi.txt #夏日の行のみのファイルを作成する awk -F"/" 'NR==1 {print $1","$2","$3}' knatsubi.txt >> kdate.csv #夏日ファイルの一行目、つまり、1年で初めての夏日の年月日と最高気温と平均気温のファイルを作成する done sort -t"," -k 2n,2 -k 3n,3 -k 5gr,5 kdate.csv > kkdate.csv awk -F"," '{print NR"位 "$1"年"$2"月"$3"日 "$4"度"}' kkdate.csv > quiz1.txt awk '{ printf "%-7s %-15s %-6s\n",$1,$2,$3 }' quiz1.txt rm k*.txt rm kdate.csv rm kkdate.csv rm quiz1.txt