#!/bin/bash echo $1 > ~/kadai2_data/kenmei.txt #読み込んだ文字列を~/kadai2_data/kenmei.txtというテキストファイルに入れる。 if [ `grep '[都道府県]$' ~/kadai2_data/kenmei.txt` ] #読み込んだ文字列の語尾が都、道、府、県のいずれかであれば、then以下のコマンドを実行する。 then if [ `grep -w "$1" ~/kadai2_data/todouhukenichiran.txt` ] #読み込んだ文字列が~/kadai2_data/todouhukenichiran.txt内の都道府県名と一致すれば、then以下のコマンドを実行する。 then cd ~/kadai2_data #~/kadai2_dataに移動する。 grep -w "$1" ./yurukyaradata.txt> ./kensakukekka.txt #./yurukyaradata.txtの中から、読み込んだ文字列を含む行を検索し、その結果を./kensakukekka.txtとする。 awk '{print $4,$1,$2}' ./kensakukekka.txt > ./chuusyutu.txt #./kensakukekka.txtの4列目、1列目、2列目を抽出し、./chuusyutu.txtとする。 sort -k 1,1 -n -r ./chuusyutu.txt > ./narabikae.txt #./chuusyutu.txtの1列目を参照して、降順に行を並び替える。並び替えた結果を./narabikae.txtとする。 cat -n ./narabikae.txt > ./result.txt #./narabikae.txtの一列目に行番号を追加し、その結果を./result.txtとする。 x=`awk '{total = total + $2} END{print total}' ./result.txt ` #./result.txtの二列目の合計値をxとする。 y=`awk '{total = total + $4} END{print total}' ./yurukyaradata.txt ` #./yurukyaradata.txtの4列目の合計値をyとする。 z=`echo "scale=1; 100 * $x / $y" | bc ` #z=x/y*100を計算して得票率を求める(ただし、小数点以下一桁まで) echo "["$1"内のゆるキャラランキング(全国得票数率中"$z"%)]" awk '{printf "%4d位 %6dpt No.%-3d %s \n",$1,$2,$3,$4}' ./result.txt #最後に結果の体裁を整えて表示する。 rm ~/kadai2_data/kenmei.txt rm ~/kadai2_data/kensakukekka.txt rm ~/kadai2_data/chuusyutu.txt rm ~/kadai2_data/narabikae.txt rm ~/kadai2_data/result.txt #スクリプトの実行途中で作成した4つのファイルを消去しておく。 else echo '正しい都道府県名を入力してください。' #読み込んだ文字列が~/kadai2_data/todouhukenichiran.txt内の都道府県名と一致しなければ、else以下のコマンドを実行する。 fi else echo '正しい都道府県名を入力してください。' #読み込んだ文字列の語尾が都、道、府、県のいずれでもない場合は、else以下のコマンドを実行する。 fi