最低限 UNIX / Linux [III]

  1. シェル
    [1.1] シェル (Shell) とは
    [1.2] シェルの役割
    [1.3] 代表的なシェルの紹介
    [1.4] シェルの確認と変更
    [1.5] bash の機能
    [1.6] 環境のカスタマイズ (Bash)
    [1.7] その他のシェル
  1. 最低限 vi
    [2.1] vi とは
    [2.2] ファイルオープン/クローズ
    [2.3] vi の基礎 - 状態遷移
    [2.4] 実践!訓練
    [2.5] vi の基礎 - コマンドモード
    [2.6] vi の基礎 - 挿入モード
    A 参考 [vi の応用]
  1. シェルスクリプト
    [3.1] シェルスクリプト入門
    [3.2] シェルスクリプト応用
    A 参考 [特殊記号の復習]
  1. 本日の課題
    課題
    ヒント
    投稿の前に
<< 情報実験第4回トップへ

4. 本日の課題

課題

    それぞれの情報実験機のディレクトリ /home/shotaro/BaraBara2011 に置かれているファイルを結合して jpg 形式の画像ファイルを復元し, その画像を表示する シェルスクリプトを作成しましょう.

    ただし, デタラメに結合しても目的の画像ファイルは復元できません. それぞれのファイル名は{情報実験機番号}_001, {情報実験機番号}_002,...という形で格納されています (例えば, 11001_001, 11001_002 のように格納されている). しかし{情報実験機番号}は皆さんがよく知っている 10 進数ではなく 2 進数で書かれています.

    更に /home/shotaro/BaraBara2011 には全ての情報実験機番号のファイルが格納されており, 自分の情報実験番号のファイルを探し出す必要があります.

    また, このファイルの中にはダミーファイルが紛れており, 本物の画像ファイルも探さなければなりません. ファイル名の後ろ 3 桁の数字が素数であるものが本物の画像ファイルです.

  1. 皆さんにやってもらうこと
    1. 画像ファイルの{情報実験機番号}を 2 進数から 10 進数に直す.
    2. 10 進数に直したファイルから本物のファイルを抜き出し, そのファイル名を新たに{情報実験機番号 (10進数)}_001, {情報実験機番号 (10進数)}_002,... と1から順番に通し番号をつけ, ファイルを結合する (joho23の場合, 画像ファイルは 23_001, 23_002 のようになる).
    3. 画像ファイルは本物を real ディレクトリに, ダミーを dummy ディレクトリにそれぞれ格納する.
    4. 最終的に作業ディレクトリには real ディレクトリ, dummy ディレクトリ, スクリプトファイル, 結合後の画像ファイルのみを残す.

    ※スクリプトの書き方によっては実行時間が長くなる場合があります. 焦らず気長に待ちましょう. 数10分かかる場合も.

    復元した jpg ファイルは以下のコマンドで見ることができます. 表示を終える際には表示されているウィンドウ上で 「q」 を入力しましょう.

      $ display [復元したファイル]
      ※ 注意事項 ※
      • 魔法使いのお爺さんや ImageMagic というロゴが出てきた場合, 画像がちゃんと復元されていません. Let's retry♪
      • きちんと画像が表示されても完成していない場合があります. 並べる順番が違ったり, 足りなかったりするときちんとした形で画像は復元されません.

  2. スクリプトが完成したら, 以下のものをレポートとして投稿・掲載して下さい.
    1. 作成したシェルスクリプト
    2. シェルスクリプトのファイル名と完成した画像ファイル名(絶対パスで)
      (例: /home/shotaro/kadai/kadai.sh, /home/shotaro/kadai/gazou.jpg)
    3. 完成した画像を見た感想.
    4. 工夫, または苦労した点.
    5. 作業協力者がいれば必ず書く.
    6. 参考文献も掲載すること. (人のレポートを参考にした場合もちゃんと書くこと).

<ヒント>


[レポート投稿の前に]




<< 戻る (シェルスクリプト)      最初へ >> (実習の前準備)      情報実験 第4回 のトップへ >>

最終更新日: 2011/05/10 堺 正太朗 Copyright © 2011 inex