サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
lagendra.s.kanazawa-u.ac.jp
make 前:C以外にmakeを使う 後:参考文献 makeの第一歩+0.1: サフィックスルール makeは、例えばfile.oが必要なとき、file.cがあればCコンパイラでコンパイルします。 これはサフィックス .o と .c の関係をmakeが知っているから可能になります。 ここで、一例として数値計算で、すこしづつパラメータを変えて計算させたいとしましょう。 数値計算を行うプログラム名を sample とし、引数はパラメーターの保存されたファイルで、計算結果は標準出力に出るとします。 % ./sample prameter01.in > parameter01.dt このようにすることで、パラメータparameter01.inに対応する計算結果がparameter01.dtに保存されます。 さて、大量のパラメータファイルをmakeで処理することを考えてみましょう。 パラメータの入
スクリプトfs.awkの1、2行目を見てください。コマンドラインの プログラムではなかったものですね。 #!/usr/local/bin/gawk -f # fs.awk: 区切文字を空白からカンマ , に変更する例 BEGIN { FS = ","; } /96\// { print $1, $3; } 行中に#がある場合、そこから後ろはコメントとなり、プログラムの実行と は関係がなくなります。行の途中からコメントにすることもできます。適切に 最低限必要なコメントを書くようにしましょう。 しかし、この説明では1行目の意味は分りませんよね。これは次のように使わ れます。まず、chmodコマンドを使ってスクリプトに実行属性を与えます。 % chmod 755 fs.awk % ls -l fs.awk -rwxr-xr-x 1 ogurisu ogurisu 120 Dec 10 02:1
AWKによって分割された行のデータをそれぞれをフィールドと言 います。またこのフィールドのひと固まりである各行をレコードと 呼びます。この文庫のデータの場合、一冊の文庫全体のデータで一つのレコー ドをつくり、書名などの項目がフィールドになります。 AWKにはいくつか組込変数があって、そのうちのNRは幾つめのレ コードを処理しているか、NFは処理中のレコードにいくつのフィールドがある かを記憶してます。このNRを使って行番号を追加できます。 % gawk '{print NR, $1, $3;}' miyabe.new 1 書名 発行 2 火車 98/02/01 3 かまいたち 96/09/01 4 蒲生邸事件 96/10/10 (省略) $0はレコード全体、つまり元のデータ行そのものとなりますから、次のよ うにすることで行番号を振ることもできます(cat -n miyabe.newと同じ)
AWKは、入力から一行データを読むたびに空白文字を区切としてデータを分 割し、最初から順番に変数 $1、$2、$3、...に代入します。入力 のある一行がつぎのようなものだったとしましょう。 火車 743 98/02/01 新潮社 新潮文庫 み-22-8 この場合、$1=火車、$2=743、$3=98/02/01、$4=新潮社、$5=新 潮文庫、$6=み-22-8、となります。 そこで、'{print $1;}'というプログラムを AWKに与えてやりましょう。 すると、各行ごとにこのプログラムが実行されます。つまり$1の内容であ る書名が印刷(print)されます。実際にこの仕組を使って、書名だけを取出 してみましょう。 % gawk '{print $1;}' miyabe.data 書名 火車 かまいたち 蒲生邸事件 堪忍箱 クロスファイア [上・下] 幻色江戸ごよみ 心とろかすような
[Ltkのサンプル集] LTkの基本サンプル集 基本:ボタンなどを作って動作を確かめてみるだけ。配置には凝らない。 空のウィンドウを開く。だけじゃつまらないので、ウィンドウのタイトルを設定してAlt-Qで終了するようにした。 ボタンがGUIの基本 ボタンの作り方。表示にはpacknなどのジオメトリマネージャを使う。表示というより、トップレベルのウィンドウへの配置だけど。 ボタンの調整はconfigureやsetfで行う。make-instanceのキーワードオプションにする方法もある。 3つのボタンを並べてみる。また、外部プログラムを起動してみる。 イメージをボタンにはってみる。 文字列や文章の表示 ラベルは押せないボタン。主に一行で表示できるものに。 メッセージは長文用。適当に改行してくれる。 チェックボタンで二者一択。各ボタンで何が選択されたかを調べるにはvalueを使う。 ラジオボタ
次 前 GNUPLOTの第一歩 GNUPLOTで簡易アニメーションを作る gnuplotのコマンド(plotやsplotなど)をファイルに書いておいて、それを gnuplotに読ませることで実行することができます。コマンドの書かれた ファイルをスクリプトといいます。 スクリプトsample1をカレントディレ クトリに準備しておいて % gnuplot sample1 とすることで、data1のグラフが表示されます。pause -1と書くことで、 リターンキーが押されるのを待たせています。リターンキーを押してみる と次のグラフ data2 が表示されます。 もし、pause -1を書かれていないとすると、data1とdata2のグラフを リターンを待たずに連続して表示し、その後終了します。その例はスク リプトsample2です。 % gnuplot sample2 pause -1の代わりに
わずか一行のプログラムで、 AWKでは現実的で便利な処理ができます。そん なプログラムを一行野郎とか one linersと呼びます。一行 野郎は、スクリプトファイルを作らずに、次の例のようにコマンドラインにプ ログラムを直接書くのが粋です。ここに上げる例は、みなgawkのマニュアルに 載っていたものです。例中のdatafileは処理したいファイル名に置き換えてく ださい。 % gawk '{ if (length($0) > max) max = length($0) } END { print max }' datafile この一行野郎は、datafileの行の最大の長さを出力します。 % gawk '{if (length($0)>m) m=length($0)} END{print m}' datafile 一行野郎では変数名はうんと短かくて良いと思います。これは一つ目の一行野
AWKの第一歩 小栗栖 修 金沢大学理学部計算科学科 ogurisu@lagendra.s.kanazawa-u.ac.jp 2001 年 1 月 8 日 (月): 第 1 版 2002 年 10 月 10 日 (木):第 1.1 版 この文書の目標は AWK を使ったことがない人が使い始めるきっかけになればというところにあります。 C や Java よりも気楽にプログラミングが楽しめて、もちろん実用的なプログラムが書けるのが AWK や perl, ruby に代表されるスクリプト言語です。すでに web 上にも AWK の文書が日本語のものも含めてた くさんあります。本格的なマニュアル形態の文書も、A4 に印刷して数枚程度のものもあります。が、ちょっ と使ってみようというには本格的な文書はしんどいし、A4 数枚程度のものは簡潔すぎて何ができるのか よくわからないと思います。それを補完
次 前 GNUPLOTの第一歩 グラフを印刷する gnuplotに描かせたグラフを印刷するには、gnuplotの出力をひとまずファ イルに保存してから印刷するのが簡単です。幸い、センターのプリンタ はポストスクリプト(postscript)形式のデータを理解します ので、gnuplotの出力もpostscript形式で保存することにしましょう。 保存しておくファイル名は、ここではgraph.psとしておきます。 gnuplot> set terminal postscript gnuplot> set output "graph.ps" 一行目が出力形式の指定、2行目が出力先のファイル名の指定です。 もしカラープリンタを持っているのなら、次のようにcolorを 追加するとよいでしょう。 gnuplot> set terminal postscript color gnuplot> set
講義のネタはここらの本などから出ています:p 入手がすでに難しいものもあるかもしれません。 Perl, Ruby などのスクリプト言語 コンピュータを使いこなすには、ruby, awkやperlなどのスクリプト言語を覚えるのが近 道です。私が一番つかっているのはScheme(スキーム) という言語の処理系の一つである Gauche です。次の引用は、このリンクからのものです。 Gauche(ゴーシュ)は、スクリプトインタプリタとしての使い易さに重点を置いて開発を行っ ているR5RS準拠のScheme処理系です。日常業務の中でのちょっとした処理を行うスクリプ トを気軽にSchemeで書きたいなあ、という願望のもとに、起動が速いこと、システムへの アクセスが組み込まれていること、最初から多国語対応を考慮していること、リスト処理 ライブラリとして他のC/C++プログラムから簡単にリンク可能で
make 前:makeって何するもん? 次:複数ファイルの場合 makeの第一歩: もっとも簡単な例 makeは、多くの場合、複数のソースファイルからなるプログラムのコン パイルに使われるのですが、もちろん単独のファイルのプログラムにとっ ても有用なユーティリティです。 例としてhello.cを扱ってみましょう。ま、こ のコードなら % gcc hello.c ですむと言えばすむんですけどね。でも、実際は % gcc -Wall -O2 -ascii -pedantic -g hello.c -lm -o hello なぁ〜んて、沢山のオプションを付けたいときもあります。特に -lmなんてつい忘れてしまいます(hello.cには不要だけど)。 さらにもうひとつ大きなメリット、makeを介してコンパイルすることに しておけば、emacsからのデバッグがとっても楽になります。M-x compi
次 前 GNUPLOTの第一歩 グラフをLaTeX文書に取りこむ gnuplotに描かせたグラフをLaTeXの文書に取りこむには、eps 形式にするのが楽です。 グラフをeps形式で保存する epsをLaTeXで処理する グラフの大きさを変更する グラフをeps形式で保存する gnuplotの出力をeps形式で保存するには次のようにします。 gnuplot> set terminal postscript eps gnuplot> set output "sin.eps" 一行目が出力形式の指定、2行目が出力先のファイル名の指定です。ファ イル名はなんでも構いませんが、eps形式のファイルは最後を".eps"にす るのが慣習です。このあと gnuplot> plot sin(x) w l と実行すると sin(x) のグラフが"sin.eps"に保存されます。続けて、 gnuplot> s
Make 次:もっとも簡単な例 makeの第一歩: makeって何するもん? makeはどんなときに利用するものなのか、具体例で説明することにしましょう。 catの私家版であるmycatは、3つのファイル、mycat.c、getline.c、 copy.c、から出来ています。これらから実行 ファイルmycatを作るには、 $ ls copy.c getline.c mycat.c $ gcc -c mycat.c $ gcc -c getline.c $ gcc -c copy.c $ ls copy.c copy.o getline.c getline.o mycat.c mycat.o $ gcc mycat.o getline.o copy.o -o mycat とします。この例のようにソースファイルが単独で完結していない場合は、- cオプションをつけてmycat.cなどに対応する
make 前:もっとも簡単な例 次:マクロの利用 makeの第一歩: 複数ファイルの場合 makeの本領は、複数のソースファイルからなるプログラムの場合です。こ のページのイントロダクションmakeって何するも ん?の例に戻って説明しましょう。 依存関係の表現 サンプルのmycatは、3つのファイル、mycat.c、getline.c、 copy.cから出来ていて、これらから実行ファイ ルmycatを作るには $ gcc -c mycat.c $ gcc -c getline.c $ gcc -c copy.c $ gcc mycat.o getline.o copy.o -o mycat とするのでした。これを良くみて、各ファイル間の依存関係 を考えましょう。 最終的な生成物mycatはmycat.o getline.o copy.oの3つで作られる 中間生成物mycat.oは、myc
"The easy way to do Lisp GUI programming" LTkはCommon Lispか ら簡単にGUIプログラミングを行うためのものです。内部的にはTcl/Tkが呼び出される のですが、「Tcl/Tkの知識は不要」というのが謳文句です。またAnsi Common LispとTcl/Tkが動けばいいのでOSを問わず利用でき、インストー ルはとても簡単です。 このページには、Tcl/Tkの例をLTkに焼きなおしてみたコードなどを、 自分の覚え書きの意味で整理して置いてあります(LTkの日本語のドキュ メントがまだまだ少ないので意味あるかなというつもり)。GUIの説明な のに画像がないというとても不親切なページでもあります。 LTkを触り出した経緯ですが、私自身はたいしたプログラミングはしな いし、めったにGUIを付けることもないのですが、それでも時には簡単 なGU
小栗栖 修 金沢大学理学部計算科学科 2001年1月8日(月): 第1版 2002年10月10日(木):第1.1版 ogurisu[AT]kanazawa-u.ac.jp この文書の目標は AWKを使ったことがない人が使い始めるきっかけになれば というところにあります。 Cや Javaよりも気楽にプログラミングが楽し めて、もちろん実用的なプログラムが書けるのが AWKやperl, rubyに代表さ れるスクリプト言語です。すでにweb上にも AWKの文書が日本語のものも含 めてたくさんあります。本格的なマニュアル形態の文書も、 A4に印 刷して数枚程度のものもあります。が、ちょっと使ってみようというには本格 的な文書はしんどいし、 A4数枚程度のものは簡潔すぎて何ができる のかよくわからないと思います。それを補完できればなと思っています。もし、 この文書以上のことをしたくなったら、もっと
Next: Contents Up: UP Contents Bourne Shell自習テキスト 木村 孝道 平林 浩一 監修 1993年6月21日 Contents シェルとは シェルの機能 プログラムの実行 ファイル名の置換(展開) 入出力の切り換え(I/O redirection) ヒアドキュメント(here document) エラー出力を標準出力にマージする パイプ機能 コマンドの区切り文字 コマンドのグルーピング バックグランド処理 ユーザの環境設定 HOME Prompt String(PS1,PS2) PATH TERM .profileによるログイン環境の設定 インタプリタ型のプログラミング言語 シェルプログラミングの基礎 シェルスクリプトと実行方法 シェル変数 シェル変数の初期化と参照 エクスポート変数 readonly変数 引用符 単一引用符 ' 二重引用
今まで見てきたように、シェルには1つのコマンドを実行させたり、また複数 のコマンドを組み合わせて実行する機能ばかりか、あるコマンドの行った仕事 結果を見てさらに次のアクションを起こさせたり、他の処理に分岐させたりす ることができます。この機能を実現するために使われるのがシェル・プログラミ ング言語です。 端末に向って仕事をする時間が長いせいかもしれませんが、シェルというと 一般的にヒストリ機能等、対話型の操作性に目を奪われるかも知れません。 しかし、対話性を重視する環境はともすれば人間が機械の忠実な子守役を強いられる 可能性があります。1つのコマンドの結果をみてからそのつど人間が次の仕事を 機械に指示するのは本末転倒で何ともバカバカしいかぎりです。シェルの持つ プログラミング機能はこの人間が行うべき仕事、すなわち1つのコマンドの結果を 見て次に起こすアクションをあらかじめシェルに教えておき
エスケープ文字 \ には、もう一つの使い方があります。次のような不 可視の文字を表現します。この表記をエスケープシーケンスと言い、正規表現 内でも用いることができます。 Cと同じですし、タブ \t と改行 \n を覚えておけば、まず事足りるでしょう。空白文字にマッチさせる には、まじめに書けば /[ \t\f\n\r\v]/ となりますが、 AWKで通常のテキストを処理するには /[ \t]/ で十分でしょう。
UP This page is in JAPANESE. 作成:1999年6月9日(水) 更新:2001年1月13日(土):原著者のページへリンクを張りました コマンドラインからプログラムを実行するとき、いつもいつもたった一 つのコマンドだけを実行させていませんか? コマンドラインを作っているのはシェルと呼ばれるプログラムです。こ こにあるドキュメントは、その一種であるBourne Shell の入門書です。 Unixをうまく使うには、シェルの使いこなしも大きなポイントです。 このページにあるドキュメントについて このページにあるドキュメントは、木村孝道氏がLaTeX でお 書きになって 配付してくださっているもの を、latex2html を用いてhtml化したものです。私はこの文書を読んでシェ ルスクリプトが書けるようになりました。木村氏に感謝です。 Bourne Shell自習
次 前 GNUPLOTの第一歩 グラフを画像ファイルにする gnuplotに描かせたグラフを画像ファイルにする方法です。ここでは PNG (Portable Network Graphics format)という形式の画像 ファイルを作ります。 gnuplot> set terminal png gnuplot> set output "img-sin.png" gnuplot> plot sin(x) w l このようにすると、img-sin.pngが作 られます。2行目が出力先のファイル名の指定ですが、PNG形式の場合、 最後を".png"にしましょう。 最初にplotしたグラフのpngしか作れない? 注意すべき点は、次のようにreplotを使ってcosやsinのグラフを重ねあ わせたつもりでも、 gnuplot> set terminal png gnuplot> set outpu
[TOP] [UP] Debian/GNU Linux Personal Tips Web等を探して解決策が見付からなかった問題をどのように解決、もし くは胡麻化して使っているかを書きます。もしかすると誰かの助けにな るかも?debian固有でないことも書いてあります。 debian固有の情報の多くはDebian JP Users、 Debian JP Devel のMLで知ったことです。MLはNet-News (jlug.ml.debian.users,jlug.ml.debian.devel)でも読めます。 metapostをxdviで表示する2(2008年6月13日) gnuplot 4.2が不調だったのが解決(2008年6月2日) Canon BJS700、再び(2008年1月5日) Emacs22への移行とcmail, TRR, Viper (2008年1月4日) 古いtipsで
makeって何するもん? オブジェクトファイルって? オブジェクトファイル 単独のファイルで完結しているプログラム、例えば次のコード #include <stdio.h> int main(void) { printf("hello, world!\n"); } は、ファイル名をhello.cとすれば、 $ gcc hello.c によりそれだけで実行可能なa.outというファイルが生成されます。も し生成されるファイル名をhelloにしたいのなら $ gcc hello.c -o hello と-oオプションを使えばよいのでした。 では、元のページの例のファイルmycat.cのように単独のファイルで完結していない 場合はどうなのでしょうか。とりあえず、コンパイルしてみましょうか。 $ gcc mycat.c /tmp/cca236321.o: In function `mycat': /
UP This page in JAPANESE. MAKEの第一歩 makeというコマンドは、Makefileというファイルの記述に従ってファイ ルの更新を行なうユーティリティです。 と書いてもよくわからんだろうなぁ(^^; まあ、最初のセクションmakeって何するもん?でも読んでみてください。 このページの目標地点は入門の手前あたりまでです。「makeって聞いた ことはあるけど」とか「ちょっと触ってみようかな?」というレベルを 対象に書いてみました。「Makefileって最初だけを大文字にしなくちゃ いけないの?」などということさえ書かれていません。そのへんはman かinfoか成書で調べてください。 なお、このページ中で $ ls などと書いてあるときの$はコマンドプロンプトです。 目次 makeって何するもん? もっとも簡単な例 複数ファイルの場合 マクロの利用 ターゲットの生成方
次のページ
このページを最初にブックマークしてみませんか?
『lagendra.s.kanazawa-u.ac.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く