#!/bin/bash #&を,に変更 sed -e 's/&/,/g' kadai2_data.csv > newdata2.csv #都道府県名を入力 echo "県名を入力してください" read ken while : do #都道府県名だけのファイルを作る awk -F',' '{ print $1 }' newdata2.csv > kenmei.csv grep -x -q $ken kenmei.csv check=$? #正しい名前が入力されるまで質問を繰り返す if [ $check -eq "0" ] then grep -w "$ken" newdata2.csv > kenmei2.csv break else echo "名前が一致しません" echo "県名を入力してください" read ken fi done #市町村名を入力 echo "市町村名を入力してください" read machi while : do #市町村名だけのファイルを作る awk -F',' '{ print $2 }' kenmei2.csv > machi.csv grep -x -q $machi machi.csv check2=$? #正しい名前が入力されるまで質問を繰り返す if [[ $check2 -eq "0" ]] then grep -w "$machi" kenmei2.csv > machi2.csv break else echo "名前が一致しません" echo "市町村名を入力してください" read machi fi done #光害指数を表示する echo "光害指数は" awk -F',' '{ print $5 }' machi2.csv echo "100km以内にある光害指数が低い場所は" #入力した地点の緯度経度を変数として定義する。 IDO=`awk -F',' '{ print $3 }' machi2.csv` KEIDO=`awk -F',' '{ print $4 }' machi2.csv` #市町村間の距離を計算し、そのファイルを作成する。 awk -F',' '(NR > 1){ print $1, $2, ((30.82*('$IDO'-$3)*3600)**2+(25.11*('$KEIDO'-$4)*3600)**2)**0.5,$5 }' newdata2.csv > distance.csv #100km以内の市町村を抜き出す。 awk '$3 <= 100000 {print}' distance.csv > 100km.csv #抜き出したものを、光害指数の小さい順に並べ替える。 sort -nk4 100km.csv > result.csv #結果を画面に出力する awk 'NR <= 3 {print $4}' result.csv > kari.txt awk 'NR <= 3 {print $1 "&" $2}' result.csv > kari2.txt paste kari.txt kari2.txt #作業中にできた不要なファイルを削除する rm 100km.csv rm distance.csv rm kenmei.csv rm kenmei2.csv rm machi.csv rm machi2.csv rm newdata2.csv rm result.csv rm kari.txt rm kari2.txt