第7回目

AWK

  1. awkに慣れよう

    第6回の課題でコピーしたディレクトリ下にあるファイルsamp3,samp4を用いて以下のようにawkコマンドを実行しそれらの動作を確認する。

    ----------------------------------------------------------------------------
    icho% more    samp3 samp4      # moreで内容を確認する。
    icho% cat -n  samp2 samp4      # -n オプションをつけると行番号も表示される。
    
    icho% awk      '{print $2 $8}'       samp3
    icho% awk      '{print $2 ":" $8}'   samp3
    icho% awk      '{print $2 ":" $NF}'  samp3  # $NFは最終フィールド
    
    icho% awk -F:  '{print $2 ":" $NF}'  samp4  
    icho% awk -F:  '$4>=80 {print $0}'   samp4
    icho% awk -F:  'BEGIN{s=0;n=0}$1~/^WA/{s=s+$4;n=n+1}END{print s/n}' samp4
    
    icho% date | awk '{printf("Now it is %s%s %s by %s\n",$1,$2,$3,$4)}'
    ----------------------------------------------------------------------------
    	
  2. awkに関する課題

    以下の条件を満たすシェルスクリプトをそれぞれ作成せよ。ただし、使うコマンドはawkとする。

    1. ファイルsamp4の中の各人に対する全科目の合計点を求めて、氏名と合計点を表示するシェルスクリプトをex-5という名前で作成せよ。

    2. dateコマンドの出力を用いて、現在時刻を以下の例に示すような形式で出力するシェルスクリプトをex-6という名前で作成せよ。

      ----------------------------------------------------------------------------
      icho% ex-6
      今日は 2005年10月25日(火)曜日です
      現在の時刻はJSTで8時36分01秒です
      ----------------------------------------------------------------------------
      		

      なお、awkコマンドの記述が長くなり1行に収まらないときは、「\\」記号を最後につけることで改行後もawkの記述を継続できる。

レポート

  1. 科目名、学籍番号、所属、氏名、および以下に示す内容を記載したファイルを作成する。

  2. 第6回の課題5(sedに関する課題)と今回の課題2(awkに関する課題)を実行して出来上がったシェルスクリプトファイルを以下のコマンドを実行し、一つにまとめる。 以下のコマンドの詳細については、テキスト第3章を参照のこと。

    ----------------------------------------------------------------------------
    icho% pwd   (各自実習を行ったディレクトリであることを確認すること)
    icho% more ex-[3456] > report-7
    ----------------------------------------------------------------------------
           

上記二つのファイルを提出する。 レポート提出にはreport.shを用いること。なお、report.shは、この演習で作成したディレクトリにコピーしておくとよい。

提出期限2005年10月31日午後10時
宛先akira-report-07@ipe.tsukuba.ac.jp佐藤
件名Report07全て半角で入力、途中にスペースを入れない

採点基準(合計10点)

電子メール以外での提出は採点対象にならない。

  1. 電子メールに「科目名、所属、学籍番号、氏名」が書いてある。1点

  2. 電子メールに課題2のawkコマンドの説明が含まれている。2点

  3. 電子メールに前回の課題ex-3が含まれている。2点

  4. 電子メールに前回の課題ex-4が含まれている。2点

  5. 電子メールに課題ex-5が含まれている。2点

  6. 電子メールに課題ex-6が含まれている。1点


授業のページに戻る

第6回のページへ戻る

第8回のページへ進む