ITPASS 実習レポート 1

名前 田中もも

担当情報実験機 joho04

問 1

スクリプトの URL

quiz1.sh.txt

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

このスクリプトは文字列をアルファベット順にn文字ずらした暗号を解読するためのものです。まずスクリプトファイルをダウンロードし任意のディレクトリに置きます。次にITPASSサーバ上の3つのテキストファイルkadai1-1_data.txt, kadai1-2_data.txt, kadai1-3_data.txtをコピーしスクリプトと同じディレクトリに置きます。端末上でmv quiz1.sh.txt quiz1.shとしてファイル名の拡張子を変更し、chmod u+x quiz1.shで実行権限を与えます。実行する際に引数として3つのテキストファイルkadai1-1_data.txt, kadai1-2_data.txt, kadai1-3_data.txtのいずれかを入力します。そうすると入力したテキストファイルに書かれている暗号を解読した結果が表示されます。指定されたファイル以外の文字列を入力するとエラーメッセージが表示されます。

実行結果へのリンク

問1の実行結果

参考資料

池田くんのレポート
http://itpass.scitec.kobe-u.ac.jp/~ikedaryo/report01/index.html
文字列をアルファベット順に1文字ずらす作業を繰り返すという方法を参考にしました。

memo-off.blogspot.jp
http://memo-off.blogspot.jp/2012/11/bashn.html
アルファベット順にn文字ずらした文字列を得る方法を参考にしました。

共同作業した人の名前

毛利安裕美

工夫したこと, 感想

与えられたテキストファイルでは文字列が複数行にわたって書かれていたので、それを一行にまとめるのに苦労しました。改行コードを空白に変換するという部分で高橋先生に助言を頂きましたことを感謝いたします。一行にまとめた後に、echoコマンドの行末は改行されるという性質を使うという点で工夫しました。はじめはtrコマンドを26回書いていましたが、他の人のレポートを参考にしてより簡潔なスクリプトに書き直しました。

問 2

スクリプトの URL

quiz2.sh.txt

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

これは2005年から2014年までの神戸市で観測された気象データを解析し、各年の猛暑日の日数、真夏日の日数、夏日の日数を出力するためのスクリプトです。まずスクリプトファイルをダウンロードし任意のディレクトリに置きます。次にITPASSサーバ上の気象データの圧縮ファイルkadai2_data.tar.gzを同じディレクトリにコピーし展開します。端末上でmv quiz2.sh.txt quiz2.shとしてファイル名の拡張子を変更し,chmod u+x quiz2.shで実行権限を与えてから実行します。どのデータを表示したいか問われるので1,2,3のいずれかの数字を入力します。そうすると年ごとの日数が表示されます。このとき1,2,3以外の文字列を入力するとエラーメッセージが表示されます。

実行結果へのリンク

問2の実行結果

参考資料

Linuxコマンド逆引き大全
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230568/?TOC
複数のファイルを一つにまとめる方法や、行数をカウントし表示するコマンドを調べました。

kakakakakku blog
http://kakakakakku.hatenablog.com/entry/2014/10/04/170623
複数のファイルの存在を確認する方法を参考にしました。

コマンドの使い方(Linux)
https://hydrocul.github.io/wiki/commands/awk.html
awkコマンドの使い方を参考にしました。

UNIX & Linux コマンド・シェルスクリプト リファレンス フィル タを使用した文字列操作 1
http://shellscript.sunone.me/filter_sed.html
データ内の不必要な文字列を消去する方法を参考にしました。

共同作業した人の名前

池田諒

")"と"}"を取り除くことについて教えてもらいました。

工夫したこと, 感想

awkを使って8列目のある数値以上のものを抜き出しその行数をカウントするという方法で日数を求めたので、少ないコマンドでスクリプトを作ることが出来たと思います。他の実習の講義でawkコマンドを使う機会があったので今回も使えるのではないかと考えました。今回の実習を通して、コマンドの使い方などは自分で実際に手を動かしてみないと身につかないものだということを実感しました。