ITPASS 実習レポート 1

名前 山崎 祐太朗

担当情報実験機 joho19

問 1

スクリプトの URL

quiz1.sh.txt

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

このスクリプトを任意のディレクトリにコピーし、ファイル名をquiz1.shに変更し、 実行権限を与えてください。

次にkadai1-1_data..txt,kadai1-2_data.txt,kadai1-3_data.txtをitpassサーバー上から コピーし、同じディレクトリ内に置いてください。

スクリプト実行時に引数を上記の課題ファイルにすると実行結果が表示されます。 それ以外の引数で実行した場合は課題ファイルを引数とするように表示されます。

実行結果へのリンク

実行結果

参考資料

池田くん

URL:http://itpass.scitec.kobe-u.ac.jp/~ikedaryo/report01/index.html
ずらした文字列を再びずらすという考えを参考にしました。

pasteコマンド

URL:http://itdoc.hitachi.co.jp/manuals/3021/3021313320/JPAS0332.HTM
HITACHI Inspire the Next と右上に表示されていました。pasteコマンドについて詳しく説明されており、ここのを何度か試行錯誤して一行にまとめました。

katz's adversaria

URL:http://d.hatena.ne.jp/katz_24/20140122/1390396525
指定回数ループ処理をみました。

メモOFF:Bashでアルファベット順にn文字列を得る

URL:http://memo-off.blogspot.jp/2012/11/bashn.html
trコマンドは参考になりました。

共同作業した人の名前

特にいない

工夫したこと, 感想

指定された文字列自身を1-25文字までずらそうとしていましたが、池田くんのを見てずらしたものを再びずらせばいいという考えを得ました。大変参考になりました。 tr 'a-z' 'b-za-b' というネットに載っていたものに大文字を加えてそのまま書いていたため、大文字は置換されていないようにみえ、大変でした。

if文を使いましたが、引数に何も指定しないと'引数は多すぎます'とでます。これは改善できませんでした。case文を使えばよかったかなと思います。

調べたことを何度も試してやっていきました。形だけは整ったかと思います。

問 2

スクリプトの URL

quiz2.sh.txt

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

このスクリプトを任意のディレクトリにコピーし、ファイル名をquiz2.shに変更し実行権限を与えてえください。

次にitpassサーバー上のkadai2_data.tar.gzをスクリプトと同じディレクトリにコピーし、圧縮ファイルを展開してください。

スクリプトを実行すれば表示したいデータを聞かれるので、選択肢の中から選んでください。選択肢以外だと終了します。 正しい選択肢を選べば、結果が表示されます。

実行結果へのリンク

実行結果

参考資料

田中さん

URL:http://itpass.scitec.kobe-u.ac.jp/~mtanaka/report01/index.html
'awk -F ,' を参考にしました。

sedコマンド

URL:http://shellscript.sunone.me/filter_sed.html
sedコマンドについて調べました。

ザリガニが見ていた...。

URL:http://d.hatena.ne.jp/zariganitosh/20131209/minimum_awk
'なるべく書かないawkの使い方'という記事でした。ザリガニってどこからきてるんだろと思いました。 awkコマンドについて具体例とともに説明されていました。

逆引きシェルスクリプト

URL:http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/awk%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E5%8C%BA%E5%88%87%E3%82%8A%E6%96%87%E5%AD%97%E3%82%92%E3%82%AB%E3%83%B3%E3%83%9E%E3%81%AB%E5%A4%89%E6%9B%B4.html
awkコマンドの区切り文字について参考にしました。

ITpro by 日経コンピュータ

URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/230994/
wcコマンドについて説明してありました。

共同作業した人の名前

特にいない

工夫したこと, 感想

awk -F , の'-F ,'を省くとうまくif文で上手く判定されなくなりました。 awk $8 として最高気温だけ抜き出すと'6.8,8.9,...,'と表示され、wc -l で行を数えて みると365や366となり','で改行を区切っているのが原因だと思い、','を削除してみてもなぜか','で区切られてしまいうまくいきませんでした。 また、なぜか続けて同じ値になっているところが1つにまとめられていたり、10~29までの値が数えられていなかったりして原因が何か分かりませんでした。awk 関係なく別のところに問題があったのかもしれません。 田中さんのをみると 'awk -F ,'としてあったため、参考にするとうまくいきました。 'awk -F ,'で','を区切りとしたのならばawkだけのときにwc -l で一年分ちゃんと数えられているのはなぜなのかと疑問が残りました。

真夏日には猛暑日、夏日には猛暑日と真夏日の日数を入れていませんが、足せば気象庁のデータと同じ結果になります。(たぶん)