• 締切済み

超巨大テキストファイルの改造

よろしくお願いします。 370GB(笑)くらいの超巨大なテキストファイルがあります。 このテキストファイルで、"\n"の文字列が出てきたら改行していくような簡単なプログラムを作成しようと思うのですが、ここで問題がありまして、HDDの残り容量が200GB程しかなく元のテキストファイルを読み込んで改造して新たなテキストファイルを吐き出すような感じでは無理そうです。どうすればよいのか分からず困っています。自分でプログラムを作らなくても何か良さそうなフリーソフトやツールがあれば教えてください。よろしくお願います。

  • Java
  • 回答数3
  • ありがとう数0

みんなの回答

noname#227025
noname#227025
回答No.3

「370GB(笑)くらいの超巨大なテキストファイル」は圧縮していない状態でそのサイズなのでしょうか? もしそうなら、Java でプログラムを組まなくても、gzip や bzip2 などのファイル圧縮ツールでファイルを圧縮して HDD の空き容量を増やしておいて、"\n" の変換は sed などのフィルタコマンドで行えばよいと思います。 例) bzip2 と sed を使用し、元のファイルが in.txt、変換後のファイルが out.txt の場合 $ bzip2 in.txt $ bzcat in.txt.bz2 | sed 's/\\n/\ '/g > out.txt

回答No.2

ハードディスクを増設するほうが簡単でしょう。しかし馬鹿にでかいファイルですね。 幸い、\nと改行符号CR/LFの長さが同じなので、ランダムアクセスで開いて上書きできませんか? #当然、元のファイルはバックアップして置くようにしないと、えらい目にあいます

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

そもそもなんでそんなバカでかいテキストファイルになるんだろう. どう考えても管理できないだろうに. さておき, 簡単に思いつくのは「適当な大きさにぶった切って断片ごとに処理をしてひっつける」という作戦. ファイルに対して truncate できるならいけると思う. あるいは「370GB(笑)を超えるメモリ容量を持つハードウェア」を入手しても可能... っていうか, それでも Java では無理か?

関連するQ&A

  • 複数のテキストファイルに対して同時に同じ変更をしたい

    いろいろなフリーソフトを探してみましたが、 探し方が悪かったのか見つける事が出来なかった為質問させて頂きます。 複数のテキストファイル(約50~100ファイル)に対して、 同時に同じ編集を行えるソフトはありませんでしょうか? grep置換という機能を持ったツールもありましたが、 置換だけではうまく出来ないような、 行の追加、改行、行の削除といった処理を 全てのファイルに対して行いたいです。 追加する文字列は一緒ですが、 削除する文字列は異なるため、 全てのファイルに対して同一の処理が出来れば目的の作業が出来ます。 そのような作業の出来るツールはありませんか? よろしくお願い致します。

  • テキストファイルの操作で教えてください!

    テキストファイル操作について教えて下さい。 膨大な数のテキストファイルがあります。 中身は改行などを含む ---------- ・ ・ ・ 1. 文字列 文字列 文字列 2. 文字列 文字列 文字列 。 。 。 ---------- の様な形です。 1つのファイルに1.~100.まであります。 この1.から100.までを全ファイル抜出すか前後の行を削除し、1つのファイルにしたいです。 どうすればできるか教えてください。 お願いします。

  • テキストファイルからの読み込みについて教えてください

    よろしくお願いします。前回の質問で、テキストファイルにあらかじめ記述してある、「名前と電話番号を検索して表示するプログラム」は、皆さんのおかげで実行できるようになったのですが、 10人分の名前のうち、4人は表示されるのですが残りの6人は表示されません。 テキストファイルは、windowsxpに付属のものを使っています。 書き方は、10人とも同じ書き方です。 山野桜見 000000000 (半角で記入後エンターで改行してます) 春野花咲 1111111 この様にして10人分が書いてあります。同じ書き方なのに表示されるものとされないものとは、どこが違うのでしょうか、アドバイスをお願いします。          

  • Pythonでリストをテキストファイルへ

    こんにちは。 Pythonで、 ls=['ab\n','cde\n']  というリストをテキストファイルに書き出して、 ファイルの中身を ab(改行) cde(改行) とするには、どうやったらよいのでしょうか? 次のプログラムを動かすと、 #! /python30/python # coding:shift_jis import io s1=['ab','cde'] with open('foo1.txt',mode='wt',encoding='cp932') as f: print(s1,file=f) ファイルの中身は ['<script > 本日は\n', '</script><td></td>\n'] なってしまいます。

  • HTML→テキスト変換ツール

    HTMLをテキストファイルに変換するツールはいくつか出ていますが、改行タグが生かされずに変換されてしまうので読みづらく思います。 改行タグのところはテキスト形式においても改行されるようなテキスト変換ツールはありますでしょうか? ご回答よろしくお願いします。

  • 改行コードの入っていないテキストファイルが開けるテキストエディタは?

    1レコードが256バイトのテキストデータが格納されているファイルがあるのですが、このファイルには改行コードが入っていません。 テキストエディタにてファイルの中身を確認したいのですが、メモ帳ですときれいに表示できません。 1行256バイトで表示できるフリーのテキストエディタをどなたかご存知でしょうか。 ご存知の方がいらっしゃいましたら教えてください。 お願いします。

  • HDDのフルパスをテキストファイルに高速に書き出す

    HDDのフルパス(含むファイル名)一覧をテキストファイルで高速に書き出すツールなどを探しています。 ネットで検索するとツールとしてかなりの候補がありますが 正直、高速(短時間)で処理できるツールがどれなのか?良くわかりません。 昨今、HDD(SSD)も2TBなど容量が大きなものが当たり前の時代になっています。 例えば、HDD(D:ドライブ)のD:¥以下の全てのサブフォルダーを含めて 全てチェックして書き出すのは 時間が必要と思われなるべく短時間で処理できそうなツール等を紹介ください。 ツールで無く、コマンド(Powershell、bat)で処理出来て コマンドの方が高速ならコマンドで処理する方法を紹介ください。 なお、テキストファイルに書き出す内容は、フルパス(含むファイル名)だけで ファイルサイズや更新日などの付属情報は必要無いです。

  • 複数テキストファイルを読み込み、複数テキストファイルの出力

    質問は100個のテキストファイル(それぞれ10個のデータを含む)を読み込み、それぞれのテキストファイルから5個ずつデータを抽出し、200個のテキストファイルとして出力するというプログラムについての質問です。 以下が僕の作ったファイル出力部分のプログラムです。 /************/ void ecg_rr(fp,data_max) FILE *fp; { int b,i=0; int c=1; char fname[64]; data[0][i]=trend_data[0][i]; for(i=0;i<100;i++) sprintf(fname,"ss[%d].txt",1+i); fp = fopen(fname,"w"); fprintf(fp,"%4d\n",c); fprintf(fp,"%8.8f\n",data[0][0]); fprintf(fp,"%8.8f\n",data[0][2]); fprintf(fp,"%8.8f\n",data[0][4]); fprintf(fp,"%8.8f\n",data[0][6]); fclose(fp); sprintf(fname,"sk[%d].txt",1+i); fp = fopen(fname,"w"); fprintf(fp,"%4d\n",c); fprintf(fp,"%8.8f\n",data[0][1]); fprintf(fp,"%8.8f\n",data[0][3]); fprintf(fp,"%8.8f\n",data[0][5]); fprintf(fp,"%8.8f\n",data[0][9]); fclose(fp); } 複数ファイルの読み込み方がわからず、自分のプログラムだと1つのテキストファイルしか読み込めないので、16_4.batを作り、その中身を 16_4 読み込むテキストファイル名1.txt ss[1] 16_4 読み込むテキストファイル名1.txt sk[1] 16_4 読み込むテキストファイル名2.txt ss[2] 16_4 読み込むテキストファイル名2.txt sk[2] ・・・ とやったのですが、うまくいきませんでした。 どうすればよいのでしょうか。

  • Cドライブのファイル整理方法について

    現在使っているパソコンのCドライブが、60GBに対し、残り容量5GBとなり、クラッシュ警告の表示が出ます、Cドライブのファイルを、外部HDDに移動し容量を確保したいのですが、Cドライブから移動してはいけないファイルについて、教えて頂きたく質問箱に出しました。 Cドライブのファイルホルダーで、容量の大きいものは、「ユーザーファイルホルダー」が、19GB 「Program Files (x86)」 5GB、 「Program Files」 56GB 「Autodesk」 4GB となっています。 単純に見ても、HDDの容量以上のものが入っていると思いますので、「ユーザーファイルホルダー」と「Autodesk」のファイルホルダー等を、移動しても大丈夫なのか?それらについてご教示頂きたくよろしくお願いいたします。 尚、パソコンは、Dell Inspiron 570 OS Windows 7 を使用しています。

  • テキストファイルの処理について

    初心者です。 PHP5を始めて約50時間程度です。 テキストファイルの処理についての質問です。 fgets,file_put_contents,str_replace,array等の関数を使い処理するのだと思います。 構文が組み立てられません。 参考になるサイト等アドバイスいただけると幸いです。 よろしくお願いします。 下記の様な元になるテキストファイルがあります。 1.最初の文字があるまで(=改行だけの行)は削除 2.最初の文字列の最後に”,”を入れ改行をとる 3.次の行と次の次の行は削除 4.次の行は、例:7月4日(土)を7,4,土に 5.次の行は、例:10:00~13:00を10:00,13:00に 6.次の行と次の次の行は削除して改行 7.次の行と次の次の行は削除 8.前述1から7までの繰り返し *最終的には後述のようなテキストファイルになります ----元になるテキストファイル 植物の光合成 理科 3 相田ももこ 7月4日(土) 10:00~13:00 30名 5,000円 鎌倉時代 社会 3 土田正 7月4日(土) 14:00~17:00 30名 5,000円 生物の進化 理科 6 長谷川浩 7月4日(土) 10:00~17:00*会場は大阪です 16名 10,000円 ----元になるテキストファイル以上 ---完成後のファイル 植物の光合成, 理科,7,4,土,10:00,13:00 鎌倉時代,社会,7,4,土,14:00,17:00 生物の進化,理科,7,4,土,10:00,17:00 ---完成後のファイル以上

    • ベストアンサー
    • PHP

専門家に質問してみよう