ITPASS 実習レポート 1

名前 中西正一

担当情報実験機 joho11

問 1

スクリプトの URL

quiz1.sh.txt

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

新しいディレクトリを作成し、その中に上のquiz1.sh.txtをコピーして移動させる。その後、そのディレクトリ内において、端末上で、mv quiz1.sh.txt quiz1.shと入力することで、名前をquiz1.shに変更し、また、chmodコマンドで、シェルスクリプトに実行権限を与える。次に、ITPASSサーバ上にある気象データの圧縮ファイル(kadai1_data.tar.gz)を作成したディレクトリの中にコピーして移動させる。そして、その圧縮ファイルをディレクトリ内で展開する。書式が同様のものならば、2007年以前の気象データをそのディレクトリ内に置くことでそのデータも加えてシェルスクリプトを実行できる。 作成したディレクトリ内で、./quiz1.shと端末上で入力することで、それぞれの年の初めての夏日が早い順にランキングが表示される。月日が一致した場合は、その日の平均気温が高かった方上位とする。

kadai1_data.tar.gzの置き場所 /home/itpass/dc-arch/exp/fy2018/180807/practice_kadai/kadai1_data.tar.gz

実行結果へのリンク

問題1の実行結果

参考資料

【 awk 】コマンド(応用編その2)――テキストの加工とパターン処理、関数の活用とCSV
筆者 西原めぐみ
csvファイルにおけるawkコマンドの使い方を学んだ。

sortコマンド
筆者 hydrocul
sortコマンドの使い方を学んだ。

【 grep 】 文字列を検索する
grepコマンドの使い方を学んだ。

【 cut 】 テキスト・ファイルの各行から一部分を取り出す
cutコマンドの使い方を学んだ。

シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる
筆者 斎藤博文
行操作について参考にした。

工夫したこと, 感想

序盤の最高気温の列が何列目にあるかを調べる作業が難しかったが、これを通してシェルコマンドの基本的な使い方について学ぶことができた。不要なファイルを作ることを避けるため、パイプを多く使用し、コマンドのオプションも多く使用した。平均気温の列を求める作業と最高気温の列を求める作業の二つはよく似ているので、この二つを一つにし、スクリプトをより短くできそうである。

問 2

スクリプトの URL

quiz2.sh.txt

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

新しいディレクトリを作成し、その中に上のquiz2.sh.txtをコピーして移動させる。その後、そのディレクトリ内において、端末上で、mv quiz2.sh.txt quiz2.shとすることで、名前をquiz2.shに変更し、また、chmodコマンドで、シェルスクリプトに実行権限を与える。次に、ITPASSサーバ上の圧縮ファイルkadai2_data.tar.gzを作成したディレクトリの中にコピーして移動させる。そして、その圧縮ファイルをディレクトリ内で展開する。端末上で、./quiz2.shと入力すると、都道府県と市町村の入力が求められるので、大文字のローマ字で入力する。すると、その場所の光害指数と共に、半径100km以内の光害指数が低い上位三つ場所とその場所の光害指数を表示する。

kadai2_data.tar.gzの置き場所 /home/itpass/dc-arch/exp/fy2018/180807/practice_kadai/kadai2_data.tar.gz

実行結果へのリンク

課題2の実行結果

参考資料

課題1と同様。

工夫したこと, 感想

課題1と同様にパイプとオプションを多用した。awkコマンドにおいて、その中でif文が使うことで、目的とする行を取り出すことができた。しかし、そのif文の実行部分で、既存の変数に値を代入することができなかった。もしそれができれば、スクリプトをより簡潔にできた。また、最後のawkコマンドにおいて、四列目と一列目を入れ替えることができなかった。四列目以外と一列目は入れ替えることができたので、四列目に問題があると考えられる。