- 締切済み
テキスト形式のファイルの編集をしたいのですが
テキスト形式のファイルの編集をしたいのですが 内容は NO=1 { (TAB)社員コード=999999 (TAB)入社日=9999/99/99 (TAB)所属=XXXXX (TAB)社員区分=1 } というように複数行1レコードとするデータで、所属がXXXXの場合社員区分を変更するというような編集をしたいです。 VBAでFSOやperlのSED、秀丸マクロ等、左記以外にも様々な方法が考えられますが、候補がありすぎで迷っています。どの方法がスマートでしょうか? お勧めの方法と可能であればソースを提示していただけると助かります ちなみに行数は約500000行でファイルサイズは30MBあります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 007MUKADE
- ベストアンサー率41% (286/694)
ノートパッド(30MBが読み込めたか?・・・)等の 所謂 ”テキストエディター ”で ”所属=XXXXX ”を検索して ”所属=yyyyy ” に置き換える・・・操作では ダメですか? 一つづつ順番でも 全て置き換えも 出来ますが・・・? 試しに ノートパッドで 小さなファイルで 試して見ては・・・?
- kmee
- ベストアンサー率55% (1857/3366)
変更が1通り(XXXXX→YYYYY)だとすると、 sed: sed "s/^\\(\t所属=\\)XXXXX/\\1YYYY/" data.txt > data_new.txt 但し、 ""は文字列、\がエスケープとして機能し、\tをタブに展開できる場合。 perl: perl -npe 's/^(\t所属=)XXXXX/$1YYYY/;' data.txt > data_new.txt ''は\等を変換しない文字列 あるいは >> henkan.pl << while(<>){ s/^(\t所属=)XXXXX/$1YYYY/;' print ; '} >> henkan.pl << というファイルを作って perl henkan.pl data.txt > data_new.txt データがShift_JISで書かれているなら、「だめ文字」に注意
- aokii
- ベストアンサー率23% (5210/22062)
約500000行ファイルサイズ30MBでしたら、アクセスでしょう。 データ表にできれば、文字の置き換えでできます。 ちなみに、所属=XXXXXから一義的に社員区分が決められるのでしたら、一旦社員区分は削除した方が早いかも。
お礼
回答ありがとうございます アクセスですか。思い至らなかったので候補にも挙がっていませんでした ところで、アクセスって1レコードが複数行に渡っているデータをテーブルにインポートって出来ました? 1レコード1行のデータしか対応できないと思っていました。 >データー表にできれば とありますが、どのようにデータ表にするのでしょうか?