問題:awkを使って解きましょう

以下の問にたいする答えをメールで送ってください。

メールの宛先は、授業で指定します。

課題

****最初に*****
作業のためのディレクトリ ~/awk を作ってください。 パソコンを使う場合にも作業のためのディレクトリ(フォルダ)を 新しく作成したほうがよいでしょう。

まず このファイルを ~/awk/sat.dat にセーブしてく ださい。以下の作業はすべて、~/awkでsat.datに対してawkを用いて行なうとして 答えてください。このファイルには太陽系の衛星のデータが入っています。データ の構成は

惑星名 衛星名 衛星名(英語) 等級 半径 発見年 発見者

となっています。

問1.以下の作業を、sat.dat に対して行なう方法をプログラムファイルを 使わない形で答えてください。
a. 海王星の衛星についてのデータを表示させる。
b. 最後の1行のみ表示させる。
問2.awkのプログラムファイルとして、tmp.awkを作成した場合、tmp.awkか らコマンドを読み込んでsat.datに対して実行する方法を答えてくだ さい。
問3.以下では問題に挙げられた作業を行なうための、awkのプログラムファ イルとその結果をそれぞれ答えてください。awkの実行結果は、コピー &ペーストを用いて解答のメールの中に取り込んでください。
a. 1800年以前に発見された衛星のデータをすべて表示する。
b. ハーシェルが発見した衛星の英語名と、属する惑星、および発見年を表示する。 ただし、最初に”ハーシェルが発見した衛星”というタイトルを付けよ。
c. 天王星の衛星の英語名を" "でつないで一行に表示させる。
d. 全衛星の平均半径を求めて最後に表示せよ。
e. 半径が最大の衛星を探して、最後にその衛星の名前と属する惑星、そして半径を 以下の形式で表示させる。 The largest satellite Satellite name 衛星の名前 planet name 属する惑星 radius 半径 (衛星の名前,属する惑星,半径にはそれぞれawkで探した名前又は数値を 表示すること)
f. 木星と土星の衛星の個数を数えて最後に次の形式で表示させる。 Number of Jupiter's satellites 木星の衛星の個数 Number of Saturn's satellites 土星の衛星の個数 (木星の衛星の個数、土星の衛星の個数にはそれぞれawkで求めた数値を 表示すること)
注意

  1. awkでの日本語の用い方
    awkでは文字列として日本語を用いることができますが、文字列以外のところに は日本語入力した文字は使えません。例えば日本語入力モードで入力し たスペース(” ”)や数字(”1”)は使えません。必ず半角の" " や"1"を 使うように。
  2. コピー&ペーストの仕方
    マウスとキーボードの左側から2列目にあるcopy,paste,cutキーを用いて ウィンドウ上のテキストを複写することができます。
    1. 領域の指定

      複写したい部分の最初にポインター(矢印を持っていってマウスの左ボタンを クリックし、つぎに最後の部分にポインターを移動して、マウスの中ボタンをク リックする。 copy キーを押す。

    2. 複写先の指定

      複写先にポインターを移動してマウスの左ボタンをクリックする。 pasteキーを押す。

    テキストエディタ内では,同様にしてある部分の移動をすることもできますが、 この場合は上記手順でcopyキーのかわりにcutキーを用います。
Netscape から文書をファイルに保存するには、ファイルメニューから 「名前を付けて保存(S)」を選んでください。 適当なディレクトリを[フィルタ]で選び、 保存ファイルの名前をタイプインしてください。