- 締切済み
超巨大テキストファイルの改造
よろしくお願いします。 370GB(笑)くらいの超巨大なテキストファイルがあります。 このテキストファイルで、"\n"の文字列が出てきたら改行していくような簡単なプログラムを作成しようと思うのですが、ここで問題がありまして、HDDの残り容量が200GB程しかなく元のテキストファイルを読み込んで改造して新たなテキストファイルを吐き出すような感じでは無理そうです。どうすればよいのか分からず困っています。自分でプログラムを作らなくても何か良さそうなフリーソフトやツールがあれば教えてください。よろしくお願います。
- みんなの回答 (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
- osu_neko09
- ベストアンサー率48% (56/115)
ハードディスクを増設するほうが簡単でしょう。しかし馬鹿にでかいファイルですね。 幸い、\nと改行符号CR/LFの長さが同じなので、ランダムアクセスで開いて上書きできませんか? #当然、元のファイルはバックアップして置くようにしないと、えらい目にあいます
- Tacosan
- ベストアンサー率23% (3656/15482)
そもそもなんでそんなバカでかいテキストファイルになるんだろう. どう考えても管理できないだろうに. さておき, 簡単に思いつくのは「適当な大きさにぶった切って断片ごとに処理をしてひっつける」という作戦. ファイルに対して truncate できるならいけると思う. あるいは「370GB(笑)を超えるメモリ容量を持つハードウェア」を入手しても可能... っていうか, それでも Java では無理か?