#!/bin/bash for loop in `ls ./kadai1_data/*.csv` #ディレクトリ「kadai1_data」にある「.csv」ファイルの名前を「loop」に代入する。 do if [[ $loop = ./kadai1_data/Kobe.csv ]] || [[ $loop = ./kadai1_data/Kagoshima.csv ]] then cat $loop | awk 'BEGIN { FS="," } { x+=$12 } END { print x/366"℃ " }' >> average.txt else cat $loop | awk 'BEGIN { FS="," } { x+=$2 } END { print x/366"℃ " }' >> average.txt fi #「,」を削除して、ファイル名が「./kadai1_data/Kobe.csv」もしくは「./kadai1_data/Kagoshima.csv」の場合、12列目、それ以外の「.csv」のつくファイルの2列目について、すべての行を合計し、その値をそれぞれ366(1年間の日数)で割って各ファイルの日平均温度を出す。日平均温度は「average.txt」に追記していく。 cut -d , -f 2 $loop | sed -n '3p' >> average1.txt #各ファイルの「,」を区切りとして2項目目を表示し、その3行目を「average1.txt」に追記していく。 done paste average1.txt average.txt > average2.txt #上記で作成した「average.txt」と「average1.txt」を都道府県名、日平均温度の順に水平方向(同じ行)に連結し、「average2.txt」に出力する。 sort -k2 -nr average2.txt > average3.txt #「average2.txt」の2列目をを降順に並び替え、「average3.txt」に出力する。 i=1 while [ $i -le 47 ] do echo 第$i位 >> average4.txt i=`expr $i + 1` done #第1位から第47位まで「average4.txt」の各行に出力する。 paste average4.txt average3.txt > average5.txt #「average3.txt」と「average4.txt」を水平方向に連結し、「average5.txt」に出力する。 head -n 10 average5.txt #「average5.txt」を上から10個だけ出力する。 rm average.txt rm average1.txt rm average2.txt rm average3.txt rm average4.txt rm average5.txt #「average.txt」〜「average5.txt」をディレクトリから削除する。