【发布时间】:2013-06-21 20:11:09
【问题描述】:
我有从 400mb 到 1GB 的大文本文件。
它是一个制表符分隔的文件,日期是第二个字段。记录不按日期排序,可以按任何顺序排列。
记录的数量和期限因文件而异
文本文件中的每条记录都有一个日期字段,格式为14/02/2012(即dd/mm/yyyy)。我想按日期拆分文本文件并保存为 Month.txt(例如 2012Jan.txt)。
Jan.txt 文件应仅包含1st Jan 2012 至31st Jan 2012 期间的记录。
最好的方法是什么?请有人推荐一个代码/编程工具来实现这一点。
谢谢
【问题讨论】:
-
我建议您编写代码并在遇到问题时提出问题。就个人而言,我会使用 Java,但语言取决于您。 :D
-
如果每条记录都在一行,并且您不熟悉编程,您可以使用 grep。
-
我只是打开文件,逐行读取。从行中读取“月”,检查“月”是否已打开文件 - 如果它未打开,则打开它以进行写入并在那里存储行。最后,您应该关闭所有文件。 (希望您不会达到打开文件的系统限制)
-
如果您在 Windows 上可以使用 .NET (Visual Studio Express),在我看来文件处理非常容易。也许你甚至可以在一些办公产品(excel/word/access)中编写一个宏。
-
老实说,现在 1GB 并不是很大。您可以轻松地将其读入内存,对其进行排序,然后在执行过程中循环创建文件。如果您没有足够的 RAM,请打开文件,逐行读取,然后将每一行附加到相应的文件中。