ITPASS 実習レポート 1

名前 白濵理花

担当情報実験機 joho05

問 1

スクリプトの URL

quiz1.sh.txt

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

このスクリプトを任意のディレクトリにコピーし、ファイル名をquiz.shと変える。そしてchmodコマンドでこのスクリプトの実行権限を与える。 その後、同一のディレクトリにitpassサーバ上のkadai1_data.tar.gzを同じディレクトリにコピーし、解凍する。スクリプトを実行すると、実行結果が出力される。

実行結果へのリンク

問題1の実行結果

参考資料

http://hydrocul.github.io/wiki/commands/sort.html
sortコマンドの復習に使用。
http://server.etutspuls.com/sh-while\read\line-4pattern/
while read lineについて使用。

工夫したこと, 感想

csvファイルのファイル名を引数として処理するところが一番手間がかかった。while read lineを使用し、ファイル名リストから引っ張ってくる方法をとることで解決した。また、リダイレクションを用いてループ内での実行結果を一つのファイルに書き込んでいく方法を取っているので、実行する度に追加されていくのを防ぐため、ループ脱出後にコピーを取り、もとのファイルを削除している。

問 2

スクリプトの URL

quiz2.sh.txt

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

このスクリプトをコピーし、ファイル名をquiz2.shと変える。その後chmodコマンドを用いてこのスクリプトの実行権限を与える。 スクリプトを実行するとa=?と表示されるので、アフィン暗号のひとつ目の鍵の数字を入力し、その後b=?と表示されるので、ふたつ目の鍵の数字を入力する。最後に解読したい文字列を入力してEnterキーを押すと、解読結果が表示される。

実行結果へのリンク

問題2の実行結果

参考資料

http://shellscript.sunone.me/variable.html
変数の定義の方法について利用。
http://qiita.com/yuku/items/fe4a7f4de6242e958553
grepコマンドの使い方について利用。

工夫したこと, 感想

まずアルファベット数字の対応表を作り、こちらでもwhile read lineを使用して一行ずつ読み込みながら計算の処理を行った。また、リダイレクションにより実行する度に結果が追加されていくことを防ぐためにファイルをコピーして元ファイルを削除するという課題1と同様の方法を何度か用いている。解読したい文字列を一字ずつ読み込むときに最後に空白が入力されてしまうために、出力結果の末尾に必要のない文字が必ず付いてしまっていたので、最後に結果ファイルの末尾を削除している。