JWW専用掲示板
(現在 過去ログ63 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13689 / inTopicNo.1)  AWKスクリプトで分からない事
  
□投稿者/ MT_ 224回-(2003/10/16(Thu) 19:17:00)

    記事内容:[|] 

    今までVB系だったのですが、先日からAWKに挑戦中です。

    そこで、すぐさま壁に当たりましたものでお尋ねしたいのですが、直線データ行を
    パターンとして捕らえるにはどのようにすれば効率的なのでしょうか?

    直線以外のものは、接頭詞的な(chとかciとか・・)ついているので、「/^hs/」な
    どのパターンで区別できるのですが、直線の場合、なにも識別できる文字が無いの
    で困っています。

    ・先頭が「スペース」なら・・・とか、
    ・フィールドの数が4個なら・・とか、
    ・hq,hs,hc,hp,....以外なら・・とか、色々考えてみるのですが、どれも効率が悪
    かったり、限定には不十分であったりに思えて、良い案が浮かびません。

    とにかく、直線データの場合にアクションを起こす記述方法が知りたいのです。
    AWKの大先輩方々、宜しくお願いします。




引用返信/返信 [メール受信/OFF] 削除キー/
■13691 / inTopicNo.2)  Re[1]: AWKスクリプトで分からない事
□投稿者/ takesi 1回-(2003/10/16(Thu) 20:25:11)

    記事内容:[|] 

    直線データのとらえかたは2通りあります。

    1.文字列としてとらえる場合
      先頭のスペースに着目して line =~/^\s/ として抽出

    2.数値としてとらえる場合
      スペースで分割して数値化する xy[0] =~ /~[0-9] or xy[0] =~ /^-/
    以上です。
引用返信/返信 [メール受信/OFF] 削除キー/
■13693 / inTopicNo.3)  ありがとう御座いました。
□投稿者/ MT_ 225回-(2003/10/16(Thu) 20:39:40)

    記事内容:[|] 

    takesiさん、早速有難う御座いました。

    直線データの行頭が「半角スペース」に着目して識別すれば良いわけですね。
    正規表現の書式まで書いていただいて、よく判りました。

    今後とも宜しくお願いします。
引用返信/返信 [メール受信/OFF] 削除キー/
■13694 / inTopicNo.4)  (削除)
□投稿者/ -(2003/10/16(Thu) 20:42:13)
    この記事は投稿者に削除されました
引用返信/返信 [メール受信/OFF] 削除キー/
■13696 / inTopicNo.5)  Re[1]: AWKスクリプトで分からない事
□投稿者/ ko 4回-(2003/10/16(Thu) 21:26:54)
https://www.page.sannet.ne.jp/kiyoaki-oikawa/

    記事内容:[|] 

    jwwから出力された物限定なら
    /^ [0-9-]/ 
    半角スペースで始まり2文字目に0〜9の数字か-が続く
    
    
    他の外部変形等から出力された物を更にawkで加工する場合
    /^ *[.0-9-]/
    半角スペースが幾つか続き(無い場合も有り)その後にピリオドか0〜9の数字か-が
    続く
    
    
    1つ目のフィールドが数値のみなら、線データと考える場合
    $1~/^[.0-9e-]+$/
    (指数表示される場合が有るのでキャラクタリストにeも含める)
    
    
    の何れかで問題無いと思うけど、保険として && NF == 4 を付け加えてる
    (無駄と言われれば、無駄ですが)
    

引用返信/返信 [メール受信/OFF] 削除キー/
■13698 / inTopicNo.6)  更なる追補足感謝します。
□投稿者/ MT_ 226回-(2003/10/16(Thu) 23:33:59)

    記事内容:[|] 

    koさん、いつもお世話になります。

    今までのVB系の場合、データは全文最初に一気に読み込んで、じっくり処理できたし、
    データ型の一致とか、宣言とか、内容を見る関数とか色々できたので何とかなっていまし
    たが、AWKは型の宣言もなにもなく、データを1行ずつ読み込んで1行ずつ処理していく
    もので、少ない情報を少ない方法で処理していかねばならず、壁に当っています。

    様々な場合の処理方法・・・しっかと、書きとめておきます。

    とにかく、1行毎の処理・・・という方式に、中々なじめない感じです。
    複雑な処理の場合特にそうだし、ある程度、行が進んだ段階でないと情報が得られない場
    合は、処理をその行の読み込みまで待たねばならないし。いっそのこと、各行を全て配列
    変数に格納して、あとからじっくり・・・処理してはどうかとも考えてもいます。

    近日中には、又、お尋ねすることがあると思いますので、宜しくお願いします。


引用返信/返信 [メール受信/OFF] 削除キー/
■13699 / inTopicNo.7)  Re[3]: 更なる追補足感謝します。
□投稿者/ ko 6回-(2003/10/17(Fri) 00:07:49)
https://www.page.sannet.ne.jp/kiyoaki-oikawa/

    記事内容:[|] 

    No13698に返信(MT_さんの記事)
    > koさん、いつもお世話になります。

    > とにかく、1行毎の処理・・・という方式に、中々なじめない感じです。

    そこに拘る必要は有りません、単純に自動でファイルを1行毎に読み込んで、
    半角スペースを区切りにデータを分けてくれる物ってだけです

    > いっそのこと、各行を全て配列変数に格納して、あとからじっくり・・・
    > 処理してはどうかとも考えてもいます。
    >

    それで構わないと思います、複雑な物になれば
    通常パターンでは、データの分析&取込み
    END パターンで、本来の処理って事になりますね

    座標変換や消去系の書き換えタイプなら、1行毎の処理になりますし
    面積計算などなら、配列に取込んでおいて、ENDパターンで処理になります

    円中心に点を打つとかだと、1行毎の処理で出来ますが、ダブりチェックも入れる

    最後に一気に処理した方がわかり易いですしね

    一番やり易い&判りやすい方法で良いのではないかと

引用返信/返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -