grepによる正規表現検索


●grepというコマンドを使うと,正規表現を使ってファイルの内容を検索できる。
 正規表現とは,特定のパターンを指定することで,パターンに一致する文字列
 を一括して指定することができるものである。正規表現の概要は,須崎先生の
 ページを参照せよ。
  1. まず,教材ファイルを準備しよう。2003gaironディレクトリに移動する。次に,以下
    のリンクをクリックして,2003gaironディレクトリの中にダウンロード・保存する。
     20101016gairon.tar.gz
    いつものとおり,
     % tar zxvf 20101016gairon.tar.gz
    として解凍する。すると,
     20101016gairon.txt
    というファイルが存在する(下図:ウィンドウの形式が違うが気にしないこと)。

    このファイルの内容を表示すると,次図のようになっている。このファイルは,2010年のある授業の出席
    調査ファイルである。各実習マシンと,その実習マシンにログインしている学生のIDが掲載されている。この
    ファイルを使って,grepを試してみよう。

  2. さて,grepの基本的な使い方は,次のようになっている。

     % grep "正規表現" ファイル名

    これで,指定したファイルの中から,指定した正規表現にマッチする文字列を含む行が表示される。
    ためしに,ohshiroを検索してみよう。

     % grep "ohshiro" 20101016gairon.txt

    と実行してみると,"ohshiro"を含む行が表示される(下図)。

    同様に,学生用IDを含む行だけを表示してみよう。学生(他学科含む)のIDは,正規表現では
     [ecsm][0-9][0-9][0-9][0-9][0-9][a-z][a-z]
    で表現できるので,

     % grep "[ecsm][0-9][0-9][0-9][0-9][0-9][a-z][a-z]" 20101016gairon.txt

    とすれば良い(下図)。


    実行結果は,次図のようになる。ちゃんと学生のIDを含む行だけが表示されているのが分かる。



    問題:grepを使って,20101016gairon.txtから,名字のイニシャルがkの人のIDが載っている行だけを表示せよ。