#!/bin/bash #ホームディレクトリへ移動 cd #ホームディレクトリを取得し、homeという引数でおく。 home=`pwd` #ゆるキャラの投票の総数をallという引数とする all=`awk '{print sum+=$4}' yurukyara.txt | tail -1` #指定された県名の入った行をyurukyara.txtから抜きだしyurukyara2.txtへコピー cat $home/yurukyara.txt | grep $1 > yurukyara2.txt #指定された県名のゆるキャラの得票総数をpartという引数とする part=`awk '{print sum+=$4}' yurukyara2.txt | tail -1` #得票割合を計算し、parcentという引数とする(1%以下の場合は0が小数点の前につくようにする)。 parcent=`echo "scale=1; 100*$part/$all" | bc -l | sed 's/^\./0\./'` #yurukyara2.txtの,で区切られた4番めのフィールド(得票数)について降順で並び替える sort -t , -k 4,4 -n -r yurukyara2.txt -uo yurukyara2.txt #問題の指定にあるように得票数、エントリーナンバー、ゆるきゃらの名前の順に並び替えてyurukyara3.txtに書き込む awk 'FS = "," { print $4" "$1" "$2 }' yurukyara2.txt > yurukyara3.txt #県名の列を取り出し、入力した県に完全一致する県がそこにあるか調べる(後の真偽判定に利用) Y=`cat $home/yurukyara.txt | cut -d , -f3 | grep -w $1` #Yの戻り値を調べて、0であればthenの内容を行い、1であればelseの内容を行う if test $? -eq 0 #echo 以下を表示 then echo $1内ゆるキャラランキング(全国得票数中$parcent %) #yurukyara3.txtの内容に「位」を付け加え、数字の桁数を揃える。得票数は右詰め,エ #ントリーナンバーは左詰めにする。また、列をナンバリングする。 awk '{printf "位 %6dpt No.%-3d %s\n", $1, $2, $3}' yurukyara3.txt | nl #echo以下を表示 else echo そんな県ねーよwww fi #最後に一時的に作った作業用ファイルを消去する。 rm yurukyara2.txt rm yurukyara3.txt