忍者ブログ
Zonuの雑記帳。1週間に1回更新が目標です。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ネタが無いので適当に書きます.

データファイルから特定の値を抜き出したいときに,grepsedが便利です.
GNU SOFTWAREなので,UNIX/Linuxには標準で,Windowsの人はCygwinを入れれば使えます.

作業のイメージは,上のような3次元グラフの,ある断面をカットしたような2次元グラフを作成する,というようなものです.
3d.png2d.png

今回は,下のようなデータファイル(X座標,Y座標,温度)からX=2.00の部分だけを抜き出しました.
 
---
        0.00        0.00      100.00
        0.10        0.00       20.00
        0.20        0.00       20.00
        0.30        0.00       20.00
        0.40        0.00       20.00
        0.50        0.00       20.00
        0.60        0.00       20.00
        0.70        0.00       20.00
        0.80        0.00       20.00
        0.90        0.00       20.00
        1.00        0.00       20.00
        1.10        0.00       20.00
       10.00        0.00       20.00
 
        0.00     1000.00      100.00
        0.10     1000.00       71.51
        0.20     1000.00       48.35
        0.30     1000.00       33.08
        0.40     1000.00       24.94
        0.50     1000.00       21.52
        0.60     1000.00       20.39
        0.70     1000.00       20.08
        0.80     1000.00       20.02
        0.90     1000.00       20.00
        1.00     1000.00       20.00
        1.10     1000.00       20.00
       10.00     1000.00       20.00

 ・・・以下Y=10,000まで1,000刻みで続く
----

まずgrepの正規表現検索を使用して,X=2.00の列を抜き出します.

$ grep '^ *2.00' filename
^は行頭を,*は一つ前の文字セットを繰り返す正規表現なので,これは,
行頭からスペースが続いた後に,2.00が記述されている列を意味しています.

次に,こうして出力されたX=2.00の列から,gnuplotのplot命令で2次元グラフが書けるように,X座標の列を消去します.

$ sed 's/^ *2.00//'
sedの 's/regA/regB/'は正規表現文字列regAをregBに変換します.

以上の二つをパイプでつなげ,適当なファイルにリダイレクトして完了!

$ grep '^ *2.00' foo.dat |  sed 's/^ *2.00//' > hoge.dat
リダイレクトのときの注意点は,絶対に入力ファイルに書き込まないことです.

まあ,データファイルが1個程度なら手動でもいいんですが,100個とか1000個とかあると,手動では無理なので,シェルスクリプトと上のコマンドを組み合わせて自動的に抽出していきます.
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
05 2025/06 07
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Internal Search
About
name: Zonu
mail: pico@any.xii.jp

某地方国立大学院生。 歯車とか電子回路とかを見るとワクワクする、いわゆるメカフェチ。( not ロボオタ )

情報系学科だったはずなのに、気づけば環境系学科に。 お蔭様で、就職活動の際は説明が大変でした。 (でもその話題をツカミにできたので結果オーライかも)

解析メインの研究なので、 FortranとかC++とかをメインにPythonとかOpenGLとかも使ってます。

Copyright © [ Zonulog ] All rights reserved.
Special Template : シンプルなブログテンプレートなら - Design up blog
Special Thanks : 忍者ブログ
Commercial message : [PR]