Y座標にX座標を突っ込む話
考えてみたらプログラミングの話は「裏表」に集める予定だったような気がしてきたが、こっちに書くと chat で言ったし面倒なのでこちらに。FPROGORG での chat の話題。勘違いがあるかもしれないが、Y座標だけのデータにX座標を追加したい。これだけなら何のことか分からないかもしれないが、多分、
132,23,455,23,95,328,31,44
みたいなデータがあって、全部 Y 座標。これに、例えば1から始まり1刻みで、1, 2, 3, 4, … を追加して、
1,132,2,23,3,455,4,23,5,95,6,328,7,31,8,44
のようにしたい。違っていたらすみません。これをエディタのマクロでという話なのだが、perl の達人なら1行で何とか書けるんじゃないかとか無責任なことを言った。私は達人でないので書けないあたりが無責任なのである。
で、それだけだと悶々してしょうがないので考えてみたのは、最初のデータが data.txt というファイルに書いてあるとして、
perl -ne "s/(\d+)(?{ $i++ })/$i\,$1/g; print $_;" data.txt
これで一応、先に紹介したような結果が画面に表示されるようだ。テストしたのは perl 5.005_03 って結構古いか。jperl かも。繰り返しておくが perl は経験は意外とあるかもしれないが達人ではない。(? {}) なんてのは初めて使ったからこれでいいのかどうか謎。
| 固定リンク
コメント
Windows XP で実行しました。クオートのあたりがよく分かっていません。
投稿: フィンローダ | 2004.08.16 18:36
お手数をおかけ致しました。ありがとうございました。
perlの参考文献をひっくり返して、私も別解を作ってみました。
http://homepage1.nifty.com/RXS02316/sub/gpib.html">http://homepage1.nifty.com/RXS02316/sub/gpib.html
重ね重ね、誠にありがとうございました。
投稿: Gamma[0.3287] | 2004.08.16 22:18