文書の過去の版を表示しています。
プログラミング実習
実用データ処理
データを処理する際のちょっとしたテクニック
複雑で高機能なプログラムを作るよりも、単純な機能だけをもったプログラムを組み合わせて使うことを考えよ。そのためには、後述する基本的なunixコマンド、リダイレクト、スクリプト言語の一行プログラムの柔軟な使用法を習得する必要がある。 特に効果的な概念は「スクリプト(主にシェルスクリプト)を作るスクリプト」という発想である。ぜひ、身に着けてほしい。
スクリプトで有効に使えるTips
- unixコマンド
- grep
- sort
- uniq
- リダイレクション
- One Liner
- sed
- awk
- perl
- ruby
- python
リダイレクト
プログラム「moge_exec」に、ファイル「hoge_in.data」から入力を読み込んで、出力をファイル「hage_out.data」に書き込むには
$ ./moge_exec < hoge_in.data > hage_out.data
または
$ cat hoge_in.data | ./moge_exec > hage_out.data
とする。
シェルスクリプト
自動的に実行したいUNIXコマンドを単に羅列したファイルを用意しておき、逐次自動実行することができる。簡単な制御構造も備えているし、ちょっと おまじないをすることによって、自前のunixコマンドのようにも使うことができる。
シェルプログラミング
- ファイル名は○○○○.shにする。
- ターミナルで
$ sh ○○○○.sh △△△△
と入力することにより実行される。スクリプト中で、△△△△という文字列は$@
で参照できる。
$ cat hogehoge.sh #!/bin/sh なんとかかんとか $ chmod +x hogehoge.sh $ ./hogehoge.sh
awk
ファイル名は○○○○.awk
にする。
ターミナルで
$ awk -f ○○○○.awk △△△△
と入力することにより△△△△という名前のファイルを処理する。
$ awk -f hogehoge.awk datafile.data
で実行できるawk fileの最初に
#!/usr/bin/awk -f
を書いておくと、
$ chmod +x hogehoge.awk
とすることによって、あたかも独立したコマンドのように
$ ./hogehoge.awk datafile.data で、実行することができる。
awk実習
Pythonガイド
ASEを用いてDacapoによる計算を行うためには、若干のPythonの知識が必要です。 Pythonはオブジェクト指向の汎用言語で覚えておくと非常に便利なものです。 インタープリタとして実装されているため速度面ではcやFORTRANに比べて不利ですが、非常に柔軟な拡張性を持っており、各種モジュールを読み込むことによりVTKを使った描画から、RasMolやGnuPlotの自動実行までも行うことができます。 変数宣言がいらないこと、インタープリタでその場で試しながらプログラムを書いたりデバッグしたりできること、簡単な手順でグラフィックスを扱うことができることなどを考え合わせると、現代版BASICといった趣もあります。
Python実用スクリプト
- ファイル名は
○○○○.py
にする。
- ターミナルで
$ python ○○○○.py
と入力することにより実行される。
- VTKやRasMol, GnuPlotで描画する場合は
$ python -i ○○○○.py
のように、
-i
をつけること。<fc #ff0000>これをつけないと絵を描く前にプログラムが終了してしまう</fc>。
詳細は即席ヘビ使い講座を参照のこと。