〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
1585 re(3):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 |
2007/5/25(金)13:41 - 竹の - nolm01.iee.niit.ac.jp - 1939 hit(s)
nori> データファイルは商用ソフトウェアの書き出すもので,
nori> あらかじめgnuplotに都合のよい形式では記録できないのです.
なるほど。
nori> 使用するマシンが不特定多数なので,なるべく追加ソフトウェアなしで
nori> 何とかしたいと思い,質問させて頂きました.
なかなか制約がきつそうですね。単に gnuplot だけでは多分無理だと思います。
nori> # Windowsのコマンドでは,この要求を満たす処理が可能なのでしょうか.
nori> # バッチファイルで対処できれば,非常にありがたいのですが...
MS-Windows の標準コマンドは、テキスト処理はあまり得意ではありませんので、
やや難しそうです。MS-Windows XP ならバッチファイル中の for 文で、C の for
文のような記法も使えるようなので、その辺と FIND (または FINDSTR) の組合せ
で matome.txt のようなものを作れるかなと思ったのですが、改行なしの echo
がないとうまくいかなそうです。
バッチファイル支援用のフリーソフトを使ったり、テキスト処理用に awk や perl
をインストールしたりすれば可能だと思いますが、そうでなければ MS-Windows
のバッチファイルでやるのは難しいかも知れません。ただ、私は MS-Windows は
詳しくないので、他の仕組みとかを利用してもしかしたらできるのかもしれませ
んが、少なくとも私にはわかりません。
けど、なんとかバッチファイルの中だけで頑張ろうとするよりは、むしろ awk
や perl とかを入れる方が早いような気はします。例えば gawk があれば、以下
のようなスクリプトファイル test.awk (5 行) を用意し、
----- ここから (test.awk) -----
BEGIN{ if(x == "") x=1.0 }
(fname != FILENAME){
fname=FILENAME; N=fname; sub(/file_/,"",N); sub(/\.txt/,"",N);
}
($1 == x){ printf "%d, %d\n",N,$2; next }
----- ここまで (test.awk) -----
コマンドプロンプト上で
gawk -F "," -v x=1.5 test.awk file_*.txt > matome.txt
とするだけです。
〔ツリー構成〕
┣【1585】 re(3):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/25(金)13:41 竹の (1657) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.