我的问题是:我有许多非常大的数据文件(总计几千兆字节),除了实际数据之外,文件开头还包含一些注释行。
所以它们看起来像这样:
# This is a file containing data.
# Here's how to use it:
# ...
# Now, let's get to the actual data:
DATA DATA DATA
我要完成的任务是尽快从这些文件中删除评论,因为我用来将它们提取到我的数据库中的工具无法处理这些评论。
我目前的方法是这样的:
# For each data file...
system "sed '/^\\#/d' #{filename} > #{filename}.tmp"
system "mv #{filename}.tmp #{filename}"
这可行,但总共需要大约 1 小时,因为文件太大了。我的假设是必须有一种更有效的方法来执行此操作,因为我确定注释仅位于文件的开头,因此无需在整个文件中搜索它们。
我不太在意该解决方案是使用纯 Ruby 还是像上面那样的 shell 命令,只要它比当前方法工作得快得多。