ITPASS 実習レポート 1

名前 塩川智之

担当情報実験機 joho 01

問 1

スクリプトの URL

quiz1.sh.txt

スクリプトの使い方の解説

PC上にどこでもいいのでディレクトリを作成してください。 その後そのディレクトリの下に上のURLにあるファイルを置いてください。その後ファイル名をquiz1.shと変更してください。 同様にしてITPASSサーバー上のデータファイルkadai1_data.tar.gzを同じディレクトリに置き、tarコマンドを用いて解凍してください。その後先程のquiz1.shを解凍したことによって作られたkadai1_dataというディレクトリに移動させてください。 chmodコマンドでユーザーに実行権限を与え、./quiz1.shでシェルスクリプトを実行してください。

実行結果へのリンク

問1の実行結果

参考資料

UNIXコマンド集

様々な基本的なコマンドを確認するのに用いた。

AWKプログカミングの真髄の1つ

AWKコマンドへ値を渡す手法のまとめ

awkコマンドの使い方について参考にした。

sortコマンドについて詳しくまとめました

sortコマンドの具体的な使用方法を調べた。

sedコマンド

sedコマンドの使い方を調べた。

pasteコマンドについて詳しくまとめました

最後の出力ファイルの作成の際に参考にした。

tailコマンドについて詳しくまとめました ヘッダーの除去に役立てた。

共同作業した人の名前

藤林 凛(TA),塩尻 千里(TA)

工夫したこと, 感想

まずファイルによって必要となるデータがどの列に存在しているかがバラバラであったため、スクリプト作成の初手がなかなか思いつかなかった。 運良くすべてのデータの四列目に項目が存在していたことから、四列目を切り出して一つひとつの項目を切り出し変数として定義し、それが年月日、最高気温、平均気温であれば、もとのデータのその列を切り出せばいいのでは、とひらめき作業が進んだ。 列を切り出す際にはawkコマンドの恩恵が非常に大きかった。 その後各年ごとの、年月日、最高気温、平均気温のみで構成されるファイルを作ったが、そのために仮に今回の課題が10年間ではなく、もっと幅広い年数で調べなければならないものであったら、ファイルの作成に時間がかかったり、容量的に実行できなくなる可能性があるなと感じた。 また、ループを利用しているので、年数が更に増えても大丈夫なように汎用性を持たしたが、仮にデータが続いているものでなく、何年かの間隔がるものだったら具合が悪いなとも感じた。 工夫はやはりループだが、そのためにファイルを大量に一時的に作成してしまうということと、不連続なデータの処理ができないというデメリットがある。 データの並び替えはsortコマンドが活躍した。多くのオプションがついているため非常に便利だった。

問 2

スクリプトの URL

quiz2.sh.txt

スクリプトの使い方の解説

問1と同じことを、quiz2,kadai2として行ってください。 光害指数を検索したい地名を都道府県名、市町村名の順に入力してください。その際半角英数大文字かつ市名、区名などの間にスペースを開けずに入力してください。

実行結果へのリンク

問2の実行結果

参考資料

grepコマンドの詳細まとめました

grepコマンドを学習し、エラー処理をするスクリプトを書くのに役立てた。

ファイルの先頭から表示するheadコマンドについて

出力ファイルの編集の際に役立てた。

共同作業した人の名前

藤林 凛(TA),塩尻 千里(TA)

工夫したこと, 感想

この課題もやはりawkコマンドが大活躍した。各列に作業を行うときにawkコマンドでその都度列を指定することで作業が大幅に捗った。この課題で最も厄介だったのはエラー処理の設定である。grepコマンドを応用することで都道府県名と市町村名の不一致をエラー処理できるのだと知るのにかなり時間がかかったし、その応用方法の模索にもかなり時間がかかった。 その後はsortコマンドやtailコマンドといった課題1で習得したコマンドを駆使することで最後までたどり着くことができた。 工夫としては、強いて言うならば、ある行を切り出す際にtailコマンド、headコマンドを使い分けたことだと思う。headコマンドを最後に採用したことにより光害指数が低い地域を3つに限らず、様々な数出力可能となっている。