人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

100バイトの固定長がCRLFで区切られて10000000行あります。
4バイト目から5バイト分の組み合わせで行を取得(100バイト+CRLF)しファイル分割したいと考えています。ソート済みとします。組み合わせを作る5バイトはファイル名として使用できる英数とします。
シェルスクリプトやプログラム言語、データベースにロードしてなどではなく、よいツールを探しています。これが最速じゃない?というのを教えてください。
ハードはIAサーバーでPen4の2.8が2つ、RAMは4GB。OSはWindowsかLinuxで。

●質問者: mwys
●カテゴリ:コンピュータ
✍キーワード:IA Linux OS Pen4 RAM
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● aki73ix
●30ポイント

http://nifberry.727.net/tool.htm

$B%=%U%H4X78(B

上記URLの

データベース簡易抽出ソフト [DL Ver 1.0]

です


データベースにロードしないでアプリケーションレベルで直接操作ということなので、速度的に制約があるかもしれませんが、手作りのものです


ある程度データ形式が変わってもファイル分割抽出できるようになっています


ソートされていないデータでなくても実行できますが、固定長のデータであれば、ソートされたデータは若干高速に処理できるようになっています


100バイト+CRLFということなので、固定長102バイトにして、追記モード、レコードの特定位置指定、レコード開始位置4、バイト数5にしてから、実行してみてください


なお、実行時には出力先のフォルダの中身を空にするかどうかきいて来ますので、大事なフォルダを間違えて指定しないようにして下さい

◎質問者からの返答

ありがとうございます。

試してみます。


2 ● goldman
●50ポイント

http://hp.vector.co.jp/authors/VA015622/

ご要望の機能を実現するためには、コマンダ64以外にはないのではないかと思います。

RECSEL コマンド⇒条件で行を抽出する。

RECEDT コマンド⇒レイアウトを変更して出力する。

※この程度のファイルなら、指定のマシンスペックなら30秒くらいで処理されます。

◎質問者からの返答

ありがとうございます。いいかんじですね。


3 ● goldman
●0ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

さきほどのデータを実際に加工してみました。

以下のコマンドを実行すると、XEON2.8×2の環境では、30秒ほどで処理されました。


RECCMP INPUT.TXT OUTPUT.TXT (4,5)

RECEDT OUTPUT.TXT SPLIT.BAT (C,RECSEL)(S,1)(C,OUTPUT.TXT)(S,1)(4,5)(C,.TXT)(S,1)(C,0x28)(C,4)(C,0x2C)(C,5)(C,0x29)(C,[)(4,5)(C,])

CALL SPLIT.BAT

◎質問者からの返答

ご丁寧にありがとうございます!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ