ITPASS 実習レポート 1

名前 櫻本 直己

担当情報実験機 joho02

問 1

スクリプトの URL

quiz1.sh.txt

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

このスクリプトを任意のディレクトリにコピーし、ファイル名をquiz1.shに変更、実行権限を与えます。次にITPASSサーバ上のkadai1-1_data.txt kadai1-2_data.txt kadai1-3_data.txtの3つのファイルをこのスクリプトと同じディレクトリにコピーします。スクリプトを実行する際、引数でコピーしてきたファイル名を指定してください。結果が表示されます。違うファイル名を入力した場合はエラーメッセージが出力されて終了するので、再びプログラムを実行して正しいファイル名を入力してください。

実行結果へのリンク

問1の実行例

参考資料

シーザー暗号
一度に25回変換する方法の参考にしました

for 文の使用方法 - UNIX & Linux コマンド・シェルスクリプト リファレンス
bash | 変数型と文字列、配列の取り扱いやif,for,whileなどの制御文の基本文法
forの使い方がいまいちよくわからなかったので参考にしました。

池田君のレポートページ
複数行のデータを一行にまとめる方法を参考にしました。
(9月7日追記)
毛利さんのレポートページ
1文字ずらすことを繰り返す方法と複数行の文字列を一行にまとめる方法を参考にしました。

共同作業した人の名前

なし

工夫したこと, 感想

forを使い大文字小文字をまとめて一括に変換をしようとしましたが、変数が一つしか指定できなかったので先頭の大文字を小文字に変換してから文字列をずらしていきました。
原文をそのまま一括でずらす方法は分からないままでした。
(9月7日追記)
1文字ずらすことを複数回するという発想はなかったのでとても参考になりました。

問 2

スクリプトの URL

quiz2.sh.txt

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

このスクリプトを任意のディレクトリにコピーし、ファイル名をquiz2.shに変更、実行権限を与えます。次にITPASSサーバ上の気象データの圧縮ファイルkadai2_data.tar.gzを同じディレクトリにコピーし展開します。スクリプトを実行するとどのデータを表示したいか問われるので、1,2,3のいずれかの数字を入力してください。年ごとの日数が表示されます。このとき1,2,3以外の文字列を入力するとエラーメッセージが表示されて終了するので、再度プログラムを実行し、正しい数字を入力してください。

実行結果へのリンク

問2の実行例

参考資料

フィルタを使用した文字列操作 1 - UNIX & Linux コマンド・シェルスクリプト リファレンス
不要な","や"]"や")"を削除するときの参考にしました。

awkを使ってカウント: 仕事を早く片付けて遊ぶための技術メモ
UNIX「awk」コマンド(Hishidama's UNIX-command "awk" Memo)
行を数えるプログラムと、各コマンドの意味を調べる際の参考にしました。

田中さんのレポートページ
月別のデータを年ごとにまとめる方法、行を数える発想を参考にしました。

共同作業した人の名前

なし

工夫したこと, 感想

wcの使い方がよくわからなかったので別の方法でしてみましたが、その分プログラムが長くなってしまいました。
(9月7日追記)
最初に提出したスクリプトでは、1,2,3以外を入力すると一時的に作ったファイルを消さないでプログラムが終了するので処理の順番を変更しました。