【发布时间】:2012-08-21 21:30:48
【问题描述】:
我的输入文件(~5k 行)格式看起来像这样
foo0: users/user1/temp1 users/user2/temp1 4.0
foo1: users/user2/temp1 users/user4/temp2 users/user4/temp1 1.0
foo2: users/user1/temp3 users/user2/temp3 2.0
foo4: users/user4/temp5 users/user2/temp6 users/user1/temp1 users/user3/temp1 4.0
我的脚本需要做的是查看每一行,抓取每个路径,打开文件并根据它检查里面的内容。
例如:对于第 1 行,脚本必须打开 user1.txt 并在 user1.txt 中搜索 temp1 并执行一些操作。然后继续到 user2.txt 并在里面寻找 temp1 并做一些事情。
对于第 2 行:打开 users2.txt 并搜索 temp1;打开 users4.txt 并搜索 temp2;打开 users4.txt 并搜索 temp1。
最快的方法是什么。我目前是一个一个的打开和关闭,这似乎需要很长时间。任何帮助表示赞赏,谢谢!
【问题讨论】:
-
有多少个文件,有多大?如果您有 3 个文件,每 10 行长,或者每 100 万行长 100 万行,这会有所不同。
-
请回答理查德的问题。如果
userN.txt文件的数量有限,那么您可以一次打开所有这些文件。至少您可以安排对每个文件的所有查询一起完成,而不是关闭并重新打开它们。请给我们更多信息 -
当事情进展缓慢时,使用Devel::NYTProf 之类的配置文件,发现缓慢的位,然后处理这些问题。
标签: perl