Views
演習2
文字列照合の実際
はじめに
- ~/da/ex2 ディレクトリを作成し、その下で演習を行うこと。
UNIX コマンド grep
- Global Regular Expression Pattern
- 文字列のパターンをファイルから検索
- 一致した行を表示
- 用例
$ grep ear /usr/share/dict/words
Python で grep もどき
- grepmodoki.py
- 補足説明
- sys.argv[n] ... コマンドラインの n 番目の文字列
- for s in f: ... ファイル f から1行ずつ s に入れて繰り返し
- s.find(key) ... key を s の中から探す
- print s, ... 印字。末尾に改行があるので、
,
で改行の追加を抑制。
C で grep もどき
正規表現の練習
- y で始まって ear が含まれる単語
$ grep ’^y.*ear’ /usr/share/dict/words
- ear が含まれ ness で終わる単語
$ grep ’ear.*ness$’ /usr/share/dict/words
Python の re モジュール
ログ解析
- 高知大学気象情報頁 のアクセスログを1日分
/net/fs/home0/isstaff/tkikuchi/da/wx.log に置いてある。
more /net/fs/home0/isstaff/tkikuchi/da/wx.log
で見てみなさい。
- 最新画像は /<二文字コード>/00Latest.jpg の名前なので、
logcount.py のようなプログラムを作成すると、画像の種類ごとの
最新画像へのアクセス数をまとめることができる。
- パターンの全部又は一部を括弧でくくっておくと、適合オブジェクト(match object)の メンバー m.group(n) でそれを取り出すことができる。ただし、n は右開き括弧の 出現順序から得られる正の整数(この場合 n=1)。
演習問題
- logcount.py のプログラムでは、応答コードが 404 のような、存在しないファイルへの アクセスもカウントされてしまう。実際にデータ転送が行われたのは応答コードが 200 の ときだけであるとして、このプログラムを修正しなさい。(q2-1.py という名前で作成する)