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

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

LIFE HACKING.JP 経由ですが,オリジナルのMacintoshのマーケティングをされていた Guy Kawasaki という方のBlogの, ”Ten Things to Learn This School Year”という記事が紹介されていました.
「社会に出る前に学生が知っておくべき10のこと」らしいです.

個人的に非常に納得する部分が多かったので,自戒の意味でもメモっておくことにしました.
翻訳は適当なので,気になる人は原文,またはLIFEHACK.JPを見てください.

長いので要注意.
PR
engadgetを見ていたら,珍しく日産関連のニュースがありました.
つーか,gadget関係のページに車のニュースっての自体が珍しいのです.

"Nissan begins testing drunking proof car"と題された記事によると,
いくつかの地方自治体と協力して,呼気解析器でアルコールが規定以上検知された場合に,
エンジンが始動しないようにするシステムのテストを行う,とのこと.
2015年までに,日産車が関係する飲酒関連事故を半減させることが目標だとか.

こういうニュースが日本であまり取り上げられてないのかな~と思って調べてみると,
日産のプレスリリースや,carviewなどには掲載されていました.
どちらかというと,メディアは新潟県中越沖地震による生産停止のほうが気になっているみたいです.
(当然,そちらのほうが重大ニュースですが)

ちなみに,engadgetのコメントではおおむね肯定的.
中には,「だれがこの車を買うんだ?」とか,
「飲んだ後に,家のドライヤーのスイッチを切り忘れたことを思い出したらどうするんだ」
とかいう愉快なコメントも.

ちょっと切実だったのは「停車中にしか電話できない車はどうなった?」というコメント.

こちらも是非よろしくお願いしたいところです.
最近メモ書きになってる,との指摘を受けてますが,気にせずに書きます.

シェルスクリプトで,ファイルからの読み込みを用いて,一気にデータを抽出する方法です.
awkなんかを使うと簡単にできるのかもしれませんが,awkを勉強してないのでこの方法でやってます.

今回は,ITproの記事を参考にして,こんな感じの捨てスクリプトを書きました.

cutup.sh
--
01: echo "CUT UP DATAS"
02: echo "READING file list from $1"
03:
04: BUFIFS=$IFS
05: IFS=
06:
07: exec 3< $1
08: while read FL 0<&3
09: do
10:     echo $FL
11:     grep '^ *2.00' $FL | sed "s/^ *2.00//" > 2.0_$FL
12: done
13: exec 3<&-
14:
15: IFS=$BUFIFS
--


スクリプトの解説です.

4行目に出てくるIFS,これはシェルスクリプトの予約変数です.
Internal Field Separaterの略で,シェルがコマンドラインを走査するときの区切り文字を定義します.
4行目では,シェルが標準で定義しているIFSBUFIFSに保存しています.
15行目でBUFIFSIFSに書き戻すことによって,後で実行されるスクリプトに影響がないようにしているわけです.

5行目ではIFSをNULLにしていると思われます.
これは,あとで$1に渡されたファイルの中身を読むときに,空白文字などを区切り文字として読んでもらっては困るからです.
Windowsだと良くありますよね,ファイル名に空白が入ってるものとか.

7行目.
ファイルディスクリプタに$1で指定されたファイルを渡します.
これが3なのは,0(stdin), 1(stdout), 2(stderr) は既にシェルで使用されているためのようです.

8行目.
ファイルディスクリプタに渡されたファイルから1行読み変数FLに格納します.
また,while文になっているので9~12行目を繰り返し実行,つまりファイルから読めなくなるまで繰り返します.

13行目.
7行目でオープンしたファイルディスクリプタ3を閉じます.

do~doneの中に入っている処理を変更すると,いろいろな処理が自動で実行できるようになります.

また,このプログラムに渡すファイル一覧は,
--
$ ls > dirs.txt
--
などを利用して取得することが可能です.
ネタが無いので適当に書きます.

データファイルから特定の値を抜き出したいときに,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個とかあると,手動では無理なので,シェルスクリプトと上のコマンドを組み合わせて自動的に抽出していきます.
Linux版のgoogle picasa(写真管理ツール)があるようです.
ってか,プレスリリースが去年ですが・・・.
米Google,デジタル写真編集ソフト「Picasa」Linux版をリリース

Wineを使わないといけない,ということらしいので,
帰ったらWineの設定をしてみようかなぁ.

Gnome付属のF-Spotも悪くないけれど,イマイチな感じが拭えない.
既存の画像のインポートがうまくできないようだし・・・.
KDEのdigiKamのほうが使い易かったです.

デスクトップ設定関連はGnomeのほうがラクチンですが,付属のツールはKDEのほうが{見栄えがいい|使いやすい}ような気がします.
カレンダー
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]